2010-10-13 15 views
3

Quelle commande dois-je exécuter dans gstreamer pour composer deux vidéos 320x240 en une seule vidéo côte à côte 640x240?Commande gstreamer pour composer (pip) deux vidéos

disons que je video1.avi et video2.avi

+0

Il est possible et je l'ai fait, mais la dernière fois que j'ai essayé le framerate obtenu était très faux et lent. Peut-être que quelqu'un peut élucider. Bonne chance. – joeforker

+0

Merci, toute autre approche, tout ce que je peux utiliser dans le côté serveur pour composer/éditer les vidéos? – oscarm

Répondre

3

plugin videomixer à la rescousse:

gst-launch -v \ 
filesrc location=video1.avi ! avidemux name=demux1 \ 
filesrc location=video2.avi ! avidemux name=demux2 \ 
videomixer name=mix \ 
     sink_0::xpos=0 sink_0::ypos=0 sink_0::alpha=0 \ 
     sink_1::xpos=0 sink_1::ypos=0 \ 
     sink_2::xpos=320 sink_2::ypos=0 \ 
    ! xvimagesink \ 
videotestsrc pattern="black" \ 
    ! video/x-raw-yuv,width=640,height=240 \ 
    ! mix.sink_0 \ 
demux1.video_00 \ 
    ! queue ! decodebin ! ffmpegcolorspace ! videoscale \ 
    ! video/x-raw-yuv,width=320,height=240 \ 
    ! mix.sink_1 \ 
demux2.video_00 \ 
    ! queue ! decodebin ! ffmpegcolorspace ! videoscale \ 
    ! video/x-raw-yuv,width=320,height=240 \ 
    ! mix.sink_2 \ 
+0

C'est une bonne réponse. Si vous utilisez 'uridecodebin' au lieu de' filesrc' comment référencer les fichiers? Dois-je encore définir un nom de variable, si oui, comment? – Dejan

+1

Oui, je pense qu'il est possible de faire le travail sans 'name': il suffit de supprimer les lignes avec' filesrc ... 'et de remplacer' demuxX.video00! file d'attente! decodebin' avec 'urldecodebin'. –