Мультимедиа в командной строке/FFmpeg

Материал из Викиучебника — открытых книг для открытого мира
Перейти к: навигация, поиск

FFmpeg — набор свободных библиотек с открытым исходным кодом, которые позволяют записывать, конвертировать и передавать цифровые аудио- и видеозаписи в различных форматах. Он включает libavcodec — библиотеку кодирования и декодирования аудио и видео и libavformat — библиотеку мультиплексирования и демультиплексирования в медиаконтейнер. Название происходит от названия экспертной группы MPEG и FF, означающего fast forward.

Примеры[править]

  • Конвертирование аудиофайла с битрейтом 320:

    $ ffmpeg -i audio.ape -ab 320k audio.mp3
    
  • Конвертирование в FLV:

    $ ffmpeg -i video.avi -ar 22050 -ab 32 -f flv -s 320x240 video.flv
    
  • Сделать скриншот размером 320×240 из 10-ой секунды файла video.avi:

    $ ffmpeg -i video.avi -an -ss 00:00:10 -r 1 -vframes 1 -s 320x240 -y -f mjpeg screenshot.jpg
    
  • Сделать DVDRip из vob-файла:

    $ ffmpeg -i snatch_1.vob -f avi -vcodec mpeg4 -b 800k -g 300 -bf 2 -acodec libmp3lame -ab 128k snatch.avi
    
  • Сделать скриншот с веб-камеры размером 640×480:

    $ ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 -f image2 snapshot.jpg 2>/dev/null
    
  • Извлечение аудиопотока:

    $ ffmpeg -i file.avi -vn output.mp3
    
  • Кодирование в .3gp:

    $ ffmpeg -i file.avi -b 200Kb -r 12 -s qcif -ac 1 -ab 12.2k -ar 8000 out.3gp
    
  • Обрезка видео (способ 1):

    $ ffmpeg -i file.avi -ss 00:00:10.000 -t 00:00:01.000 out.avi

    В -ss задаётся позиция начала обрезки, а в -t - сколько секунд взять для обрезаемого видео

  • Обрезка видео (способ 2):

    $ ffmpeg -i file.avi -to 00:00:10.000 out.avi

    -to - кол-во времени которое будет обрезатся начиная от начала файла


С использованием Windows PowerShell.exe[править]

Перекодировка всех файлов .mov в каталоге в формат .avi реализуется с помощью двух .bat-файлов. Файл convert.bat (для конвертации нужно вызвать его):

for %%i IN (*.mov) DO (doConvert.bat "%%i")
pause

Файл doConvert.bat (здесь прописываются параметры перекодировки):

IF EXIST "%~d1%~p1%~n1.avi" GOTO exit
ffmpeg -i "%~d1%~p1%~n1.mov" -f avi -vcodec mpeg4 -b 3500k -g 300 -bf 2 -acodec libmp3lame -ab 128k -y "%~d1%~p1%~n1.avi"
:exit