Некоторые рекомендации
Я понимаю, что ffmpeg - это приложение для Linux, однако я надеюсь достичь этого в Windows 7 64-bit.
ffmpeg доступен для Windows, OS X, Linux и других платформ. Смотрите страницу загрузки FFmpeg для нескольких вариантов.
Первым делом вы должны загрузить последнюю сборку ffmpeg . Рекомендуется регулярно получать новую сборку, так как разработка FFmpeg очень активна и использовать исправленные ошибки. Ежедневные сборки для Windows доступны на Zeranoe FFmpeg Builds .
Я использую то, что мне сказали, это крайне устаревшая предустановка, однако она соответствует моим потребностям, и я являюсь привычкой, когда дело доходит до моих методов кодирования.
Нет причин использовать старую неподдерживаемую предустановку, которая может использовать старые неподдерживаемые параметры. Просто используйте вместо этого -preset veryfast : он в основном очень похож на ваш старый, неподдерживаемый пресет. ffmpeg больше не использует текстовый тип файлов "эмулирующих" пресетов для x264, но теперь обращается к ним напрямую.
Добавление водяного знака

Используйте overlay видеофильтр:
ffmpeg -i input.flv -i logo.png -filter_complex \
"[0:v][1:v]overlay=W-w-10:H-h-10[watermark]" -map "[watermark]" \
-map 0:a -codec:v libx264 -preset veryfast -crf 18 -codec:a copy \
output.mp4
График фильтра: [0:v][1:v]overlay=W-w-10:H-h-10[watermark]
[0:v] является спецификатором потока, ссылающимся на видеопоток (ы) первого ввода (input.flv). [1:v] относится к видеопотоку (ам) второго входа (logo.png).
W-w-10 размещает ось x и относится к ширине основного входа (W) и ширине оверлейного входа (w). H-h-10 аналогична , но для оси у. В этом примере логотип размещается внизу справа с отступом в 10 пикселей. Смотрите overlay документации видео фильтра для получения дополнительной информации.
[watermark] - метка выходной ссылки. Некоторые опускают это, но я предпочитаю явно обозначать свои выводы, чтобы устранить неоднозначность.
-crf 18 часто считается "визуально без потерь", поэтому я предполагаю, что значение будет достаточно для вас. Если нет, то уменьшите значение до достижения приемлемого качества. Затем используйте самый медленный пресет, к которому у вас есть терпение. См. Руководство по кодированию FFmpeg и x264 для получения дополнительной информации о -crf и -preset .
-codec:a copy будет транслировать поток аудио. Если вашему плееру не нравится то, что я считаю MP3-аудио, используйте вместо этого что-то вроде -codec:a aac -strict experimental -b:a 128k . Для получения дополнительной информации см. Руководство по кодированию FFmpeg и AAC .
Сегментация видео
Используйте segment мультиплексор:
ffmpeg -i input.flv -i logo.png -filter_complex \
"[0:v][1:v]overlay=W-w-10:H-h-10[watermark]" -map "[watermark]" \
-map 0:a -codec:v libx264 -preset veryfast -crf 18 -codec:a copy \
-f segment -segment_time 20 -segment_list out.csv output.mp4
Продолжительность сегментов будет приблизительно 20 секунд, а выходные данные будут называться output-000.mp4 , output-001.mp4 , output-002.mp4 и т. Д. Более подробную информацию и примеры см. В документации по segment мультиплексору .
Пакетное кодирование
Linux
Использование Bash "для цикла":
$ mkdir outputdir
$ for file in *.flv; do ffmpeg -i "$file" -i logo.png -filter_complex \
"[0:v][1:v]overlay=W-w-10:H-h-10[watermark]" -map "[watermark]" \
-map 0:a -codec:v libx264 -preset veryfast -crf 18 -codec:a copy \
-f segment -segment_time 20 -segment_list outputdir/out.csv \
outputdir/"${file%.flv}-%03d.mp4"; done
Windows
for %%a in ("*.flv") do ffmpeg -i "%%a" -i logo.png -filter_complex "[0:v][1:v]overlay=W-w-10:H-h-10[watermark]" -map "[watermark]" -map 0:a -codec:v libx264 -preset veryfast -crf 18 -codec:a copy -f segment -segment_time 20 -segment_list "outputfolder\out.csv" "outputfolder\%%~na-%%03d.mp4"
pause
Вы можете сохранить это в текстовом редакторе и назвать его watermark.bat а затем дважды щелкнуть его, чтобы выполнить. В проводнике Windows вам, вероятно, придется показывать скрытые системные файлы для показа watermark.bat .