2

Хочу извиниться, потому что я ни в коем случае не знаком с работой с ffmpeg, и после того, как я безуспешно пытался выполнить добавление водяного знака с изображением PNG в мои видео, я надеюсь, что кто-то сможет мне помочь.

Я понимаю, что ffmpeg - это приложение для Linux, однако я надеюсь достичь этого в Windows 7 64-bit.

Я использую то, что мне сказали, это крайне устаревшая предустановка, однако она соответствует моим потребностям, и я являюсь привычкой, когда дело доходит до моих методов кодирования.

Вот что я надеюсь сделать:

  1. Пакетное кодирование FLV в MP4 с сохранением исходного имени файла.
  2. Отметьте водяным знаком все видеофайлы с изображением PNG в правом нижнем углу видео.
  3. Автоматически разделяйте файлы в назначенное время обрезки, сохраняя исходное имя файла и просто добавляя что-то вроде -00, -01 и т.д. В конец имени файла.

Ниже предустановка, которую я сейчас использую. В графическом интерфейсе я обычно использую 15/16 для CRF, что дает мне общий выход около 56% от исходного размера файла.

coder=1
flags=+loop
cmp=+chroma
partitions=-parti8x8-parti4x4-partp8x8-partb8x8
me_method=dia
subq=2
me_range=16
g=250
keyint_min=25
sc_threshold=40
i_qfactor=0.71
b_strategy=2
qcomp=0.6
qmin=10
qmax=51
qdiff=4
bf=3
refs=1
directpred=3
trellis=0
flags2=+bpyramid-mixed_refs+wpred-dct8x8+fastpskip
wpredp=2
rc_lookahead=50

Любая помощь очень ценится, и я снова прошу прощения за мое невежество из-за отсутствия каких-либо технических знаний, когда дело доходит до кодирования.

1 ответ1

3

Некоторые рекомендации

Я понимаю, что ffmpeg - это приложение для Linux, однако я надеюсь достичь этого в Windows 7 64-bit.

ffmpeg доступен для Windows, OS X, Linux и других платформ. Смотрите страницу загрузки FFmpeg для нескольких вариантов.

Первым делом вы должны загрузить последнюю сборку ffmpeg . Рекомендуется регулярно получать новую сборку, так как разработка FFmpeg очень активна и использовать исправленные ошибки. Ежедневные сборки для Windows доступны на Zeranoe FFmpeg Builds .

Я использую то, что мне сказали, это крайне устаревшая предустановка, однако она соответствует моим потребностям, и я являюсь привычкой, когда дело доходит до моих методов кодирования.

Нет причин использовать старую неподдерживаемую предустановку, которая может использовать старые неподдерживаемые параметры. Просто используйте вместо этого -preset veryfast : он в основном очень похож на ваш старый, неподдерживаемый пресет. ffmpeg больше не использует текстовый тип файлов "эмулирующих" пресетов для x264, но теперь обращается к ним напрямую.

Добавление водяного знака

Nahanni

Используйте 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 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .