2

Я усердно следовал

FFMPEG: как добавить водяной знак на видео? Водяной знак FFmpeg

но под linux (ubuntu 13.04 64bit) команда ВОДЯНОЙ

  • поток видеофайлов
  • водяной знак png

Кажется, не работает больше.

Еще более странно, что сообщения об ошибках в ffmpeg и avconv различны (см. Коды, версии и ошибки ниже).

Но синтаксис мне кажется правильным. Любая идея ?

Обратите внимание, что -filter_complex (больше не доступно) был заменен в snipped на -vf

$ ffmpeg -i ariel.mov -i logostilo7.png -vf "[0:v][1:v]overlay=x=10:y=main_h-overlay_h-10[outv]" -map "[outv]"  out.mp4
ffmpeg version 0.8.6-6:0.8.6-1ubuntu2, Copyright (c) 2000-2013 the Libav developers
[h264 @ 0x1ce9d60] max_analyze_duration reached
[h264 @ 0x1ce9d60] Estimating duration from bitrate, this may be inaccurate
Input #0, h264, from 'ariel.mov':
  Duration: N/A, bitrate: N/A
    Stream #0.0: Video: h264 (Main), yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1200k tbn, 50 tbc
Input #1, image2, from 'logostilo7.png':
  Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
    Stream #1.0: Video: png, bgra, 479x339, 25 tbr, 25 tbn, 25 tbc
File 'out.mp4' already exists. Overwrite ? [y/N] y
[buffer @ 0x1cebcc0] w:1920 h:1080 pixfmt:yuv420p
Output pad "default" for the filter "src" of type "buffer" not connected to any destination
Error opening filters!

avconv

$ avconv -i ariel.mov -i logostilo7.png -vf "[0:v][1:v]overlay=x=10:y=main_h-overlay_h-10[outv]" -map "[outv]"  out.mp4
avconv version 0.8.6-6:0.8.6-1ubuntu2, Copyright (c) 2000-2013 the Libav developers
  built on Mar 30 2013 22:20:06 with gcc 4.7.2
[h264 @ 0x19f2d40] max_analyze_duration reached
[h264 @ 0x19f2d40] Estimating duration from bitrate, this may be inaccurate
Input #0, h264, from 'ariel.mov':
  Duration: N/A, bitrate: N/A
    Stream #0.0: Video: h264 (Main), yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1200k tbn, 50 tbc
Input #1, image2, from 'logostilo7.png':
  Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
    Stream #1.0: Video: png, bgra, 479x339, 25 tbr, 25 tbn, 25 tbc
[h264 @ 0x19f2d40] Invalid stream specifier: [outv].
Stream map '[outv]' matches no streams.

Есть идеи, какие изменения могут произойти в командах оверлея ffmpeg?

Что еще более странно, код, который, кажется, исправляет проблему, совершенно другой:

ffmpeg -i ariel.mov   -vf "movie=logostilo7.png [logo]; [in][logo] overlay=10:main_h-overlay_h-10 [out]" out.mov

Означает ли это, что "старый" способ нанесения водяных знаков закончился?

1 ответ1

2

Ваш ffmpeg не "настоящий" из FFmpeg, а довольно устаревший и ошибочно названный из репозиториев Ubuntu. Он содержит бесчисленные нефиксированные ошибки и не поддерживает так много функций, как ffmpeg версии 1.0 (возможно, даже 0.9) и выше.

Итак, -filter_complex не был удален, скорее наоборот: в вашей сборке его нет. Вам нужна опция filter_complex для фильтров графиков с несколькими входами и выходами.

Кроме того, -vf является сокращением для -filter:v . Если ваша версия не распознает -filter:v , она также слишком старая.

Загрузите последнюю статическую сборку или скомпилируйте ffmpeg самостоятельно. Тогда примеры, которые вы видели в других вопросах, должны работать нормально. Вы можете найти статические сборки для всех основных операционных систем на странице загрузки и руководствах по компиляции здесь, включая специальные руководства для Ubuntu.

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