簡體   English   中英

如何在Linux中“准備” / dev / video?

[英]How to “tee” /dev/video in Linux?

如何“准備” / dev / videox設備的輸出,以便實時視頻流可以同時被兩個程序使用?

我想將實時視頻從/ dev / video1:input = 1:norm = NTSC一次發送到兩個程序(mplayer和mencoder),以便在錄制mencoder的同時獲得非延遲的實時視圖。

我知道如何從Mencoder中獲取剛剛編碼的輸出並進行播放,但這會導致幾幀的延遲(太多)。 我被告知VLC可以做到這一點,但也並非沒有很大的滯后。

我現在能做的最好的就是讓mplayer在屏幕上播放它,同時使用“ avconv -f x11grab”將視頻從顯示屏上抓取並進行編碼。 這行得通(不會增加延遲),但是從顯示器上抓取視頻的速度很慢-我最終獲得了大約10 fps而不是30 fps。

必須有一些簡單的方法將/ dev / video1“准備”到兩個虛擬設備中,以便mplayer和mencoder可以同時讀取它們(其中沒有一個抱怨設備“忙”)。

那是什么方式

並非完全符合您的要求,但是可以在一個程序中完成它: GStreamer嘗試gst-launch )。 它對視頻流bash ,而bash對輸入/輸出管道起作用。

GStreamer的camerabin2插件可以毫無延遲地完成您所需的工作:播放並記錄流。 盡管目前只能從客戶端代碼使用它,但不能從gst-launch

如果您需要做更復雜的事情,例如通過RTP網絡協議對視頻流進行編碼和發送,GStreamer會提供一個tee過濾器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM