2011-12-15 9 views
5

Si tengo una tubería como:Gstreamer tubería pegada en prerolling estado al dar sólo el audio de video de la tubería

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

Cómo lo reciba para jugar cuando no hay ningún vídeo en la fuente de entrada, pero el juego de vídeo ¿si hay? Todo lo que consigo es:

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

Respuesta

7

solo puede establecer la propiedad de autovideosink async-handling true:

... ! autovideosink async-handling=true 

Esto permitirá audiosink para reproducir sonido mientras videosink está esperando.

+2

Por alguna extraña razón, esto aumenta el uso de la CPU en un 40%. ¿Por qué sería esto, y qué debería hacer para arreglar esto? –

+0

@DK, no sé, pero voy a tratar de investigar por qué este es el caso –

+0

Tuve un problema con glimagesink donde estaba tan rezagado y causando que el audiosink se muriera de hambre y no quise usar una camiseta. Esto hizo el truco! ¡Gracias! – Sepehr

1

Es un un tipo de fallo de decodebin2

ver que he probado algunas tuberías y conocer siguientes cosas

pipeline1:

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

esta tubería1 funciona bien con todos los formatos de contenedor como .mkv, .mp4, ogg

pero cuando le das archivo extencion códec entonces crear un problema que ha dicho

Lo he probado con .h264 archivo

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 

todo tiene el mismo problema que son incapaces de precarga ahaead e incapaz de mostrar el error de conexión de la almohadilla inválida

si intenta única conexión almohadilla única válida, entonces funciona bien

pipeline4:

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

pipeline5:

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

tubería 4 y 5 obras finas

incluso

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

Esto también funciona bien ....

Ahora para entender este error más y fijándolo tenemos que estudiar y el cambio código fuente decodebin2 .........> !!!!