Моя платформа: Ubuntu 10.10 + FFMPEG 0.5.3(я установил ffmpeg из исходного кода)

Я пытаюсь добавить водяной знак в.MOV видео с FFMPEG 0.5.3 imlib2.so (Обратите внимание, что FFMPEG 0.6+ не поддерживает imlib2.so , поэтому я использую ffmpeg 0.5.3)

Вот мой код:

ffmpeg -sameq -i example.mov -vhook '/usr/local/lib/vhook/imlib2.so -x 0 -y 0 -i /var/www/files/watermark.png' newexample.mov

Вот вывод:

FFmpeg version 0.5.3, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: --enable-avfilter --enable-filter=movie --enable-avfilter-lavf
  libavutil     49.15. 0 / 49.15. 0
  libavcodec    52.20. 1 / 52.20. 1
  libavformat   52.31. 0 / 52.31. 0
  libavdevice   52. 1. 0 / 52. 1. 0
  libavfilter    0. 4. 0 /  0. 4. 0
  built on Jul  3 2011 12:05:08, gcc: 4.4.5

Seems stream 1 codec frame rate differs from container frame rate: 59.94 (5994/100) -> 29.97 (30000/1001)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'example.mov':
  Duration: 00:03:14.06, start: 0.000000, bitrate: 3350 kb/s
    Stream #0.0(eng): Audio: aac, 48000 Hz, stereo, s16
    Stream #0.1(eng): Video: h264, yuv420p, 1150x647, 29.97 tbr, 29.97 tbn, 59.94 tbc
Output #0, mov, to 'newexample.mov':
    Stream #0.0(eng): Video: mpeg4, yuv420p, 1150x647, q=2-31, 200 kb/s, 90k tbn, 29.97 tbc
    Stream #0.1(eng): Audio: 0x0000, 48000 Hz, stereo, s16, 64 kb/s
Stream mapping:
  Stream #0.1 -> #0.0
  Stream #0.0 -> #0.1
Unsupported codec for output stream #0.1

В чем может быть возможная проблема? Это AAC или H264, которые не поддерживаются?

Я установил libavcodec-extra-52, linfaac, libfaad и т.д., Но ошибка та же.

Нужно ли устанавливать, следуя этой инструкции? HOWTO: Установите и используйте последние версии FFmpeg и x264 или есть более простое решение?

1 ответ1

1

Правильный способ сделать это с недавним ffmpeg - использовать оверлейный фильтр. Следующая команда поместит watermark.png поверх input.mp4 , с верхним левым углом водяного знака на пятнадцать пикселей вправо и на десять пикселей вниз от верхнего левого угла основного видео:

ffmpeg -i input.mp4 -i watermark.png -filter_complex \
'[0:v][1:v]overlay=15:10[outv]' -map [outv] -map [0:a] \
-c:a copy -c:v libx264 -crf 22 -preset veryfast output.mp4

Очевидно, измените 15 или 10 на любые значения, которые вы хотите.

Есть также несколько констант, которые могут оказаться полезными, если вы размещаете водяные знаки на нескольких видео с разными разрешениями:

  • W и H - ширина и высота основного видео (input.mp4)
  • w и h - ширина и высота оверлейного видео (watermark.png)

Это может пригодиться много раз. Например, чтобы разместить водяной знак над центром видео, вы можете использовать:

'[0:v][1:v]overlay=(W-w)/2:(H-h)/2[outv]'

Аналогично, чтобы расположить водяной знак по центру в верхней левой шестой части видео:

'[0:v][1:v]overlay=(W-w)/6:(H-h)/6[outv]'

Для нижней левой шестой части видео:

'[0:v][1:v]overlay=(W-w)/6:(H-h)/(6/5)[outv]'

Вы можете делать все, что вам нужно.

См. Документацию фильтра наложения для получения дополнительной информации.

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