2011-12-15 24 views
5

Nếu tôi có một đường ống như:GStreamer đường ống bị mắc kẹt trong prerolling nhà nước khi đưa ra chỉ có âm thanh để luồng video

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

Làm thế nào để tôi nhận được nó để chơi khi không có video trong nguồn đầu vào, nhưng chơi video nếu đó là? Tất cả tôi nhận được là:

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

Trả lời

7

Bạn chỉ có thể thiết lập thuộc tính async-handling autovideosink của true:

... ! autovideosink async-handling=true 

này sẽ cho phép audiosink để chơi âm thanh trong khi videosink đang chờ.

+2

Vì một số lý do kỳ lạ, điều này làm tăng mức sử dụng CPU lên 40%. Tại sao điều này lại xảy ra, và tôi nên làm gì để sửa lỗi này? –

+0

@DK, không biết, nhưng tôi sẽ cố gắng để điều tra tại sao đây là trường hợp –

+0

Tôi gặp vấn đề với glimagesink nơi nó bị tụt hậu rất nhiều và khiến cho audiosink bị đói và tôi không muốn sử dụng tee. Điều này đã làm các trick! cảm ơn! – Sepehr

1

của một loại lỗi của decodebin2

thấy tôi đã thử nghiệm một số đường ống và làm quen với những điều sau đây

pipeline1:

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

đường ống này1 hoạt động tốt với tất cả các định dạng vùng chứa như .mkv, .mp4, ogg

nhưng khi bạn cung cấp cho tập tin extencion giải mã sau đó nó tạo ra vấn đề mà bạn đã nói

tôi đã thử nghiệm nó với .h264 tập tin

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 

tất cả có cùng một vấn đề họ không thể gia tải ahaead và không có khả năng hiển thị lỗi kết nối pad không hợp lệ

nếu bạn cố gắng chỉ kết nối pad đơn hợp lệ sau đó họ hoạt động tốt

pipeline4:

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

pipeline5:

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

đường ống 4 và 5 tác phẩm mỹ

thậm chí

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

này cũng sẽ hoạt động tốt ....

Bây giờ để hiểu lỗi này hơn và sửa chữa nó, chúng ta cần phải nghiên cứu và thay đổi mã nguồn decodebin2 .........> !!!!

Các vấn đề liên quan