FFMPEG: NIE dodawanie znaku wodnego do filmu

2

Pilnie śledziłem

FFMPEG: jak dodać znak wodny do wideo? Znak wodny FFmpeg

ale pod Linuksem (ubuntu 13.04 64bit) polecenie WATERMARK

  • strumień plików wideo
  • znak wodny png

wydaje się nie do pracy więcej.

Co dziwniejsze, błędy zgłaszane przez ffmpeg i avconv są różne (patrz kody, błędy i błędy poniżej)

Ale składnia wydaje mi się poprawna. Dowolny pomysł ?

Zauważ, że -filter_complex (nie jest już dostępny) został zastąpiony przez wycięcie na -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.

Masz pojęcie, które zmiany mogą nastąpić w poleceniach nakładki ffmpeg?

Co dziwniejsze , kod, który wydaje się naprawiać problem, jest zupełnie inny:

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

Czy to oznacza, że ​​skończył się staroświecki sposób znakowania wodnego?

Giuliano69
źródło

Odpowiedzi:

3

Twój ffmpegnie jest „prawdziwy” z FFmpeg, ale dość przestarzały i źle nazwany z repozytoriów Ubuntu. Ma niezliczoną liczbę nie naprawionych błędów i nie obsługuje tylu funkcji, co ffmpeg w wersjach 1.0 (być może nawet 0.9) i wyższych.

Tak więc -filter_complexnie został usunięty - wręcz przeciwnie: twoja wersja go nie ma. Potrzebujesz filter_complexopcji dla filtrów wykresów z wieloma wejściami i wyjściami.

Ponadto, -vfjest skrótem -filter:v. Jeśli twoja wersja nie rozpoznaje -filter:v, jest też zbyt stara.

Pobierz najnowszą kompilację statyczną lub sam skompiluj ffmpeg. Następnie przykłady, które widziałeś w innych pytaniach, powinny działać dobrze. Możesz znaleźć statyczne kompilacje dla wszystkich głównych systemów operacyjnych na stronie pobierania i przewodnikach kompilacji tutaj , w tym szczegółowych przewodnikach dla Ubuntu.

slhck
źródło