2016-03-24 9 views
1

Ich versuche, ein Wasserzeichen zu übernehmen und es auch auf die aktuelle Videogröße über ffmpeg Befehl zu skalieren:Wie skalieren und fügen Sie ein Logo im ffmpeg-Befehl korrekt ein?

Hier ist meine inital comand, die ohne Wasserzeichen arbeitet

ffmpeg -v 0 -vcodec h264_qsv -i 'udp://@some.ip:1234?fifo_size=1000000&overrun_nonfatal=1&buffer_size=1000000' -vf scale=iw:ih -profile baseline -acodec aac -ac 1 -ar 44100 -ab 64k -deinterlace -vcodec h264_qsv -bufsize 4000k -maxrate 3500k -preset veryfast -vb 2000k -f flv rtmp://127.0.0.1/app/720 

Jetzt habe ich versucht, das Bild hinzufügen als Wasserzeichen. Es gab einen Konflikt bei der Verwendung mit -vf scale=-1:ih*.5, um das Problem zu beheben, das ich -s 1280x720 verwendet, um die Auflösung für den Video-Stream anzugeben, funktionierte es aber nicht richtig.

ffmpeg -v 0 -vcodec h264_qsv -i 'udp://@some.ip:1234?fifo_size=1000000&overrun_nonfatal=1&buffer_size=1000000' -i logo.png -filter_complex "overlay=10:10" -s 1280x720 -profile baseline -acodec aac -ac 1 -ar 44100 -ab 64k -deinterlace -vcodec h264_qsv -bufsize 4000k -maxrate 3500k -preset veryfast -vb 2000k -f flv rtmp://some.ip/app/720 

Das Problem:

Wie ich in den ffmpeg die beiden Größen von Video-Befehl angeben und das Logo (Wasserzeichen), so dass sie miteinander nicht in Konflikt geraten und sie automatische Einstellung wie -vf scale=-1:ih*.5 Dosis .

Vielen Dank!

+0

See [hier] (http://superuser.com/a/1053647/114058). – Mulvya

+0

@Mulvya Danke, ich sah diesen Beitrag, aber für mich ist sehr verwirrend all diese ffmpeg Befehle. In Ihrer Antwort zu diesem Link verwechsle ich mit -map [v] -map 0: a -y -b: v '. Kannst du bitte deinen Befehl erklären oder meinen bearbeiten? Vielen Dank im Voraus ! – Chris

Antwort

2

Der scale2ref Filter eines zu einem Video-/Bildstrom mit Bezug auf die Abmessungen eines anderen Video- oder Bildstrom ermöglicht

z.B.

ffmpeg -v 0 -vcodec h264_qsv -i 'udp://@some.ip:1234?fifo_size=1000000&overrun_nonfatal=1&buffer_size=1000000' \ 
-loop 1 -i logo.png \ 
-filter_complex "[1:v][0:v]scale2ref=iw/8:-1[logo][0v];[0v][logo]overlay=10:10[v]" \ 
-map "[v]" -map 0:a \ 
-profile baseline -acodec aac -ac 1 -ar 44100 -ab 64k \ 
-deinterlace -vcodec h264_qsv -bufsize 4000k -maxrate 3500k \ 
-preset veryfast -vb 2000k \ 
-f flv rtmp://some.ip/app/720 

Hier 1:v - das Bild Logo - skaliert die Breite [0:v]-1/8th wird, der H.264-Stream.


Für den Befehl in den Kommentaren gegeben:

ffmpeg -v 0 -vcodec h264_qsv -i 'input' \ 
-loop 1 -i logo.png \ 
-filter_complex "[0:v]scale=iw:ih[v0]; \ 
       [1:v][v0]scale2ref=iw/8:-1[logo][0v];[0v][logo]overlay=10:10[v]" \ 
-map "[v]" -map 0:a \ 
-profile baseline -acodec aac -ac 1 -ar 44100 -ab 64k \ 
-deinterlace -vcodec h264_qsv -bufsize 4000k -maxrate 3500k \ 
-preset veryfast -vb 2000k \ 
-f flv out1 \ 
-filter_complex "[0:v]scale=-1:ih/2[v0]; \ 
       [1:v][v0]scale2ref=iw/8:-1[logo][0v];[0v][logo]overlay=10:10[v2]" \ 
-map "[v2]" -map 0:a \ 
-profile baseline -acodec aac -ac 1 -ar 44100 -ab 64k \ 
-deinterlace -vcodec h264_qsv -bufsize 4000k -maxrate 2000k \ 
-preset veryfast -vb 1000k \ 
-f flv out2 \ 
-filter_complex "[0:v]scale=-1:ih/4[v0]; \ 
       [1:v][v0]scale2ref=iw/8:-1[logo][0v];[0v][logo]overlay=10:10[v3]" \ 
-map "[v3]" -map 0:a \ 
-profile baseline -acodec aac -ac 1 -ar 44100 -ab 64k \ 
-deinterlace -vcodec h264_qsv -bufsize 4000k -maxrate 1000k \ 
-preset veryfast -vb 512k \ 
-f flv out3 \ 
+1

Ihr Befehl funktioniert gut, danke. Aber ich habe ein Problem. Ich streame mit 1 ffmpeg Befehl 3 rtmp Streams (1 Eingang - 3 verschiedene Qualität Ausgänge). Wie kann ich diesen Befehl einstellen, der fast der gleiche ist, der oben für das Logo verwendet wurde? – Chris

+1

ffmpeg -v 0 -vcodec h264_qsv -i 'eingabe' -vf skala = iw: ih -profil baseline -acodec aac -ac 1 -ar 44100 -ab 64k -de-interlace -vcodec h264_qsv -bufsize 4000k -maxrate 3500k -preset sehr schnell - vb 2000k -f flv out1 -vf skala = -1: ih * .5 -profil baseline-acodec aac -ac 1 -ar 44100 -ab 64k -interlace -vcodec h264_qsv -bufsize 4000k -maxrate 2000k -preset sehr schnell -vb 1000k - f flv out2 -vf skala = -1: ih * .25 -profil baseline-acodec aac -ac 1 -ar 44100 -ab 64k -interlace -vcodec h264_qsv -bufsize 4000k -maxrate 1000k -preset sehr schnell -vb 512k -f flv out3 – Chris

+0

Danke! Ich schulde dir mindestens ein Bier! – Chris