← Форум / Рецепты / Команды для FFMPEG без значительных потерь качества видео
Localtime!
Данная тема, решение для тех, кто хочет конвертировать видео и/или накладывать логотип (watermark) при помощи FFMPEG без значительных потерь со значительным уменьшением размера видеофайла.
Встала передо мной задача, уменьшить "вес" видеофайла без значительных потерь. Нашел решение в Гугле, но в некоторых версиях FFMPEG, найденное мной решение не работало. Пришлось "играть" с ключами и прочими командами FFMPEG. Решил поделиться, кому-нибудь пригодится.
Исходный файл: 137 МБ,(результат и сравнение ниже)
overlay=main_w-overlay_w-10:10 // Правый верхний угол
overlay=main_w-overlay_w-10:main_h-overlay_h-10 // Правый нижний угол
overlay=10:10 // Левый верхний угол
overlay=10:main_h-overlay_h-10 // Левый нижний угол
FFMPEG был собран так:
cd /usr/src/
svn checkout svn://svn.ffmpeg.org/soc/libavfilter libavfilter
cd libavfilter
./checkout.sh
cd ffmpeg
./configure --enable-avfilter --enable-libfaac --enable-libmp3lame --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared
--enable-swscale --enable-vdpau --enable-version3 --enable-x11grab --enable-avfilter --enable-filter=movie --enable-libtheora --enable-libvorbis
make
make install
Установилась версия FFMPEG:
FFmpeg version SVN-r26400, Copyright (c) 2000-2011 the FFmpeg developers
built on Dec 21 2015 20:56:18 with gcc 4.4.7 20120313 (Red Hat 4.4.7-16)
configuration: --enable-avfilter --enable-libfaac --enable-libmp3lame --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared
--enable-swscale --enable-vdpau --enable-version3 --enable-x11grab --enable-avfilter --enable-filter=movie --enable-libtheora --enable-libvorbis
libavutil 50.36. 0 / 50.36. 0
libavcore 0.16. 1 / 0.16. 1
libavcodec 52.108. 0 / 52.108. 0
libavformat 52.93. 0 / 52.93. 0
libavdevice 52. 2. 3 / 52. 2. 3
libavfilter 1.74. 0 / 1.74. 0
libswscale 0.12. 0 / 0.12. 0
libpostproc 51. 2. 0 / 51. 2. 0
Hyper fast Audio and Video encoder
Значения свои подставляйте, либо команады с лого и без выше. Скрипт конвертирует видео в MP4, прописывает хинты (если не нужно, то удалите строчку MP4Box -hint ${f}.mp4), удаляет оригинал (если не нужно чтобы удалялся оригинал, то удалите строчку rm -if ${f}).
Если нужно чтобы в фоновом режиме работал скрипт (можно выйти из SSH), то команда запуска скрипта:
nohup ./convert.sh &
UPD: 29 мая 2017:
Команда для наложения логотипа для новых версий FFMPEG:
где N номер звуковой дорожки