2010-06-14 16 views
7

Questo funziona:Perché questa pipeline gstreamer si blocca?

gst-launch-0.10 \ 
videotestsrc ! ffmpegcolorspace ! 'video/x-raw-yuv' ! mux. \ 
audiotestsrc ! audioconvert ! 'audio/x-raw-int,rate=44100,channels=1' ! mux. \ 
avimux name=mux ! filesink location=gst.avi 

posso farlo funzionare per un po ', uccidere, e poi totem gst.avi display una carta di prova bella con tono.

Tuttavia, cercando di fare qualcosa di più utile come

gst-launch-0.10 \ 
filesrc location=MVI_2034.AVI ! decodebin name=dec \ 
dec. ! ffmpegcolorspace ! 'video/x-raw-yuv' ! mux. \ 
dec. ! audioconvert ! 'audio/x-raw-int,rate=44100,channels=1' ! mux. \ 
avimux name=mux ! filesink location=gst.avi 

solo mostra

Setting pipeline to PAUSED ... 
Pipeline is PREROLLING ... 

e poi bancarelle a tempo indeterminato.

Qual è il trucco per ottenere la versione con decodebin rolling?

risposta

3

Aha ... questo fa quello che voglio:

gst-launch-0.10 \ 
filesrc location=MVI_2034.AVI ! decodebin name=dec \ 
dec. ! queue ! ffmpegcolorspace ! 'video/x-raw-yuv' ! queue ! mux. \ 
dec. ! queue ! audioconvert ! 'audio/x-raw-int,channels=1' ! audioresample ! 'audio/x-raw-int,rate=44100' ! queue ! mux. \ 
avimux name=mux ! filesink location=gst.avi 

Gli elementi della coda (sia iniziali e finali) non sembrano essere cruciale.

Ulteriori esperimenti aggiungendo cose come videoflip o

videorate ! 'video/x-raw-yuv,framerate=25/1' 

nella parte video della pipeline di tutto il lavoro come previsto.

+2

In caso di muxing o demuxing, è necessario disporre di buffer. È qui che arrivano gli elementi della coda. È possibile perfezionarla ulteriormente specificando il numero di buffer nella coda. –

+0

Grazie per il suggerimento. Risulta che mentre la pipeline di cui sopra funziona per un video di 640x480, ho dovuto aumentare i byte di dimensioni massime della coda video finale per ottenere il deadlock con contenuto 1280x720. – timday

0

la tua pipeline sembra essere corretta. tuttavia, gst-launch è uno strumento limitato: suggerirei di codificare la pipeline in python o ruby ​​per un migliore debug.

Problemi correlati