2011-12-15 4 views
5

Se ho una pipeline come:Gstreamer gasdotto bloccato nel caricamento del video stato quando dando solo l'audio al video gasdotto

gst-launch filesrc location="/home/dk/Music/Vangelis - Alpha.mp3" ! 
decodebin2 name=dec ! 
queue ! ffmpegcolorspace ! autovideosink dec. ! 
queue ! audioconvert ! audioresample ! autoaudiosink 

Come ho capito di giocare quando non c'è il video nella sorgente di ingresso, ma giocare ai video se c'è? Tutto quello che ottiene è:

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

risposta

7

Si può solo impostare la proprietà di autovideosink async-handling true:

... ! autovideosink async-handling=true 

Questo permetterà audiosink per riprodurre il suono mentre videosink è in attesa.

+2

Per qualche strana ragione, questo aumenta l'utilizzo della CPU del 40%. Perché dovrebbe essere questo, e cosa dovrei fare per risolvere questo problema? –

+0

@DK, non lo so, ma proverò a indagare sul motivo per cui questo è il caso –

+0

Ho avuto un problema con glimagesink in cui era in ritardo così tanto e provocava la morte del pubblico e non volevo usare un tee. Questo ha fatto il trucco! Grazie! – Sepehr

1

E 'un un tipo di bug di decodebin2

vedere ho testato alcuni oleodotti e conoscere seguenti cose

pipeline1:

gst-launch filesrc location="filename" ! 
decodebin2 name=dec ! 
queue ! ffmpegcolorspace ! autovideosink dec. ! 
queue ! audioconvert ! audioresample ! autoaudiosink 

questo pipeline1 funziona perfettamente con tutti i formati contenitore come .mkv, .mp4, ogg

ma quando si dà il file extencion codec allora creare problema che hai detto

Ho testato con .h264 file di

pipeline2:

gst-launch filesrc location="smal.h264" ! decodebin2 name=dec ! queue ! 
autovideosink dec. ! queue ! autoaudiosink 

pipeline3:

gst-launch filesrc location="smal.aac" ! decodebin2 name=dec ! queue ! 
autovideosink dec. ! queue ! autoaudiosink 

tutto ha lo stesso problema non sono in grado di precarico ahaead e incapace di mostrare l'errore di connessione pad non valida

se si cerca solo la connessione pad unico valido allora funziona bene

pipeline4:

gst-launch filesrc location="smal.h264" ! decodebin2 ! autovideosink 

pipeline5:

gst-launch filesrc location="smal.aac" ! decodebin2 ! autoaudiosink 

gasdotto 4 e 5 opere belle

anche

gst-launch filesrc location="/home/dk/Music/Vangelis - Alpha.mp3" ! 
decodebin2 ! audioconvert ! audioresample ! autoaudiosink 

questo sarà funziona anche bene ....

Ora per capire questo bug di più e fissandolo abbiamo bisogno di studiare e cambiare codice sorgente decodebin2 .........> !!!!