2016-03-24 4 views
1

Je suis en train d'appliquer un filigrane et aussi à l'échelle à la taille de la vidéo en cours via la commande ffmpeg:Comment redimensionner et ajouter un logo correct dans la commande ffmpeg?

Voici mon inital COMAND qui fonctionne sans filigrane

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 

Maintenant, j'ai essayé d'ajouter l'image comme un filigrane. Il y avait un conflit lors de l'utilisation avec -vf scale=-1:ih*.5, afin d'éliminer le problème que j'ai utilisé -s 1280x720 pour spécifier la résolution pour le flux vidéo, cela a fonctionné mais pas correctement.

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 

Le problème:

Comment puis-je préciser dans la commande ffmpeg les tailles les deux de la vidéo et le logo (filigrane) afin qu'ils ne sont pas en conflit les uns avec les autres et ils réglage automatique comme -vf scale=-1:ih*.5 dose .

Merci!

+0

Voir [ici] (http://superuser.com/a/1053647/114058). – Mulvya

+0

@Mulvya Merci, j'ai vu ce poste mais pour moi est très confus toutes ces commandes ffmpeg. Dans votre réponse sur ce lien, je suis confus avec '-map [v] -map 0: a -y -b: v'. Pouvez-vous s'il vous plaît expliquer votre commande ou modifier le mien? Merci d'avance ! – Chris

Répondre

2

Le filtre permet une scale2ref à un flux vidéo/d'image en se référant aux dimensions d'un autre flux vidéo ou d'une image

par exemple,

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 

Ici 1:v - l'image du logo - est en cours d'extension à 1/8ème de la largeur [0:v], le flux H.264.


Pour la commande donnée dans les commentaires:

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

Votre commande fonctionne bien, merci. Mais j'ai un problème. Je suis en streaming en utilisant 1 ffmpeg commande 3 flux RTMP (1 entrée - 3 sorties de qualité différentes). Comment puis-je ajuster pour cette commande qui est presque le même que mentionné ci-dessus pour utiliser le logo? – Chris

+1

ffmpeg -v 0 -vcodec h264_qsv -i 'entrée' -vf échelle = iw: ih -profile ligne de base -acodec aac -ac 1 -ar 44100 -ab 64k -interface -vcodec h264_qsv -bufsize 4000k -maxrate 3500k -preset veryfast - vb 2000k -f flv out1 -vf échelle = -1: ih * .5 -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 -vf scale = -1: ih * .25 -profil de base -acodec aac -ac 1 -ar 44100 -ab 64k -interface -vcodec h264_qsv -bufsize 4000k -maxrate 1000k -preset veryfast -vb 512k -f flv out3 – Chris

+0

Merci! Je te dois au minimum une bière! – Chris