2016-04-28 309 views
0

使用gstreamer-0.10與FPS25和FourCIF_Format錄製的文件以快進模式播放。任何解決方案將不勝感激。有時在錄製的文件中跳過3-4秒。在GStreamer中,如何同時播放和錄製v4l2src的h264 AVI文件?

管道我試圖使用方法是:

GST推出v4l2src設備=的/ dev /視頻2! 'video/x-raw-yuv,width = 704,height = 576,framerate = 25/1'! tee name = liveTee!隊列! mfw_isink liveTee。 !隊列! vpuenc! avimux! filesink location =/home/Recording.avi

+0

歡迎來到Stack Overflow。通常我們會提供更多的細節,如果我們想要在我們的問題上得到一些很好的回答。這個問題看起來不錯,只需添加一些細節,如:你使用的管道,一些調試輸出(使用evn var GST_DEBUG = 3運行),你怎麼播放該文件等。 – nayana

+0

嗨otopolsky,我的工作流程是: gst-launch v4l2src device =/dev/video2! 'video/x-raw-yuv,width = 704,height = 576,framerate = 25/1'! tee name = liveTee!隊列! mfw_isink liveTee。 !隊列! vpuenc! avimux! filesink location =/home/Recording.avi 此流水線直播並記錄它。但是,錄製的文件以快進模式播放。 – ManojSahu

+0

我找到了解決方案,但它只適用於1臺攝像機。 在上述流水線中添加「視頻速率」解決了這個問題。錄製的文件以正常模式播放。但是,它會影響直播。直播流式結構。 – ManojSahu

回答

0

我要去粗暴地刺一下它,然後重新格式化你的問題。這主要是GStreamer和飛思卡爾的問題,而不是QT。

gst-launch-1.0 -e videotestsrc pattern = ball do-timestamp = true is-live = true!時間重疊! 'video/x-raw,width = 704,height = 576,framerate = 25/1'! tee name = liveTee! 隊列leaky =下游! videoconvert! ximagesink async = false liveTee。 !隊列leaky =下游! videoconvert!隊列! x264enc! avimux! filesink location =/tmp/test.avi

需要注意的是,您的編碼器必須跟上實時播放。所以你的流水線需要處理編碼器不同步的情況。在T恤後面的queue元素上,使用leaky屬性。

那麼你還要小心你的視頻源和它的供應。它看起來像你的情況,你想要實時視頻,但如果你的源是一個現有的視頻文件管道可能需要更多的調整。

注意:它可能比這更簡單,只需將async=false添加到videosink中就顯得非常重要。

+0

謝謝,但是,leaky沒有在正常模式下播放錄製的文件。 _italic_ **哪些元素可能導致我的錄製文件在快進模式下播放?** – ManojSahu