Напоследък съм тотален фен на OpenSource видео конвертора ffmpeg.
Ето примери с някои прости команди, които вършат страхотна работа:
ffmpeg.exe -i all.vob -sameq -ss 75 -t 75 -vcodec libx264 test.mpg |
ffmpeg.exe -i all.vob -sameq -ss 75 -t 75 -vcodec libx264 test.mpg
-i all.vob – файла, който ще обработваме
-sameq – запази качеството на видеото
-ss 75 – почни да режеш от 75-та секунда
-t 85 – продължителност на рязането 85 секунди
-vcodec libx264 – видео кодек в който да се конвертира. Ако искаме да сме сигурни, че файла ще върви на всяка Windows машина, можем да ползваме -vcodec msmpeg4v2.
В по-новите версии на ffmpeg при рязане на видео има възможност да се зададе край на рязането спрямо началото и да се използва времеви формат – часове:минути:секунди.стотни:
ffmpeg.exe -i input.mp4 -ss 00:00:06.356 -to 00:00:11.560 test.avi |
ffmpeg.exe -i input.mp4 -ss 00:00:06.356 -to 00:00:11.560 test.avi
Някои допълнителни екстри:
Video:
-s – размер на картината
-b – видео битрейд
-r – скорост на кадрите
-croptop, -cropbottom, -cropleft, -cropright – рязане на картината в пиксели
-padtop, -padbottom, -padleft, -padright – поставя кантове до картината (padding), в този случай е добре да се зададе и -padcolor 000000 – цвят на кантовете в HEX-формат, в случая 000000 – черно.
-vn – не конвертирай никакво видео. Използва се за да се екстрактне аудиото.
Audio:
-acodec libmp3lame – задаване на кодек за аудиото
-acodec copy – използвай същия кодек за аудиото
-ab 128k – битрейд за аудиото
-ac 6 – задаване на аудио каналите
-an – без аудио
Обединяването на видео и аудио става просто като добави и двата файла в началото;
ffmpeg -i audio.wav -i video.m2v ... |
ffmpeg -i audio.wav -i video.m2v ...
Конвертиране на MPG видео до FLV с високо качество за качване по видео-порталите:
ffmpeg -i input.mpg -sameq -f flv -vcodec libx264 output.flv |
ffmpeg -i input.mpg -sameq -f flv -vcodec libx264 output.flv
—————————-
UPDATE: 05.09.2016
—————————-
Някои интересни команди за кепчъринг на онлайн видео стрийм
ffmpeg архива за Windows върви с някои интересни инструменти. Един от тях е ffplay, който е наистина необикновен видео-плеър.
Един пример, който показва възможностите за плейване на онлайн стрийм (телевизията е City TV) с ffplay:
ffplay -i "http://nodeb.gocaster.net:1935/CGL/_definst_/mp4:TODAYFM_TEST2/playlist.m3u8" |
ffplay -i "http://nodeb.gocaster.net:1935/CGL/_definst_/mp4:TODAYFM_TEST2/playlist.m3u8"
Можем да настроим ffplay да показва времето от началото на видеото:
ffplay -vf "drawtext=text='%{pts\:hms}':box=1:x=(w-tw)/2:y=h-(2*lh)" input.mp4 |
ffplay -vf "drawtext=text='%{pts\:hms}':box=1:x=(w-tw)/2:y=h-(2*lh)" input.mp4
Ако съхраните в една директория mplayer и ffmpeg екзетата, ще можете да гледате отново същата телевизия, но през пайп с mplayer:
mplayer -cache 2000 -cache-min 99 "ffmpeg://http://nodeb.gocaster.net:1935/CGL/_definst_/mp4:TODAYFM_TEST2/playlist.m3u8" |
mplayer -cache 2000 -cache-min 99 "ffmpeg://http://nodeb.gocaster.net:1935/CGL/_definst_/mp4:TODAYFM_TEST2/playlist.m3u8"
Същото, но прекарано през ffplay:
ffmpeg -i "http://nodeb.gocaster.net:1935/CGL/_definst_/mp4:TODAYFM_TEST2/playlist.m3u8" -f matroska - | ffplay -i - |
ffmpeg -i "http://nodeb.gocaster.net:1935/CGL/_definst_/mp4:TODAYFM_TEST2/playlist.m3u8" -f matroska - | ffplay -i -
Понякога ffplay не може да закачи драйвера за саунда. Тогава можем предварително да включим този драйвер през променливите на обкръжението. При мен става и двата directsound или winmm. Примерно за Windows 7 можем в промпта да зададем следното:
set SDL_AUDIODRIVER=directsound
ffplay http://... |
set SDL_AUDIODRIVER=directsound
ffplay http://...
Записване на Desktop capture с ffmpeg под Windows:
ffmpeg -f gdigrab -i desktop -framerate 24 -vcodec libx264 -crf 23 out.mp4 |
ffmpeg -f gdigrab -i desktop -framerate 24 -vcodec libx264 -crf 23 out.mp4
За приключване на записа се натиска бутона q.
Ffmpeg е направо велик инструмент, който се ползва лесно и бързо, заради интуитивните му команди.
Генериране на малък по размер GIF от видео файл
ffmpeg -i StickAround.mp4 -filter_complex "[0:v] fps=12,scale=480:-1,split [a][b];[a] palettegen [p];[b][p] paletteuse" SmallerStickAround.gif
Конвертиране на m3u8 стрийм до mp4:
ffmpeg -protocol_whitelist file,http,https,tcp,tls,crypto -i url_to.m3u8 -c copy out.mp4