[英]Pipeline Gstreamer RTSP file sinking with big delay
我在RTSP上用Gstremer准備了一個IP攝像機,它似乎可以在線和實時地通過以下命令進行:
gst-launch-1.0 rtspsrc location=rtsp://192.168.1.138:554/axis-media/media.amp ! rtph264depay ! decodebin ! videoconvert ! autovideosink sync=false
它非常出色,並且延遲顯示大約40毫秒(毫秒) 。
如果我刪除autovideosink
sync=false
結束,則顯示延遲2秒 。
現在,我想在文件上同步RTSP流。 首先,我在/tmp
通過mkfifo file.ts
創建一個管道,然后使用:
gst-launch-1.0 rtspsrc location=rtsp://192.168.1.138:554/axis-media/media.amp ! rtph264depay ! mpegtsmux ! filesink location=file.ts
它可以正常工作並以ts
格式和h264
編解碼器正確同步RTSP。 我可以成功使用mplayer file.ts
或gst-play-1.0 file.ts
播放它,但有2秒的延遲!
我嘗試使用sync=false
或autovideosink
但出現錯誤或無效。
如何減少文件下沉的延遲?
謝謝
經過大量搜索后,我發現Gstreamer官方文檔中的“抖動緩沖區”默認閥為200ms,但實際上為2秒。
“延遲” guint抖動緩沖區的最大延遲。 數據包將最多保留一次在緩沖區中。 標志:讀/寫默認值:200 以下
所以我可以使用以下命令將延遲增加到400ms:
gst-launch-1.0 rtspsrc latency = 0 location=rtsp://192.168.1.138:554/axis-media/media.amp ! rtph264depay ! mpegtsmux ! filesink location=file.ts
mkfifo的延遲也為400毫秒,因此命名管道不是實時應用的好解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.