如何“开发”/ dev / videox设备的输出,以便两个程序可以同时使用实时视频流?
我想将/ dev / video1:input = 1:norm = NTSC的实时视频一次发送到两个程序(mplayer和mencoder),以便在mencoder录制的同时获得非滞后的实时视图
我知道如何从mencoder中获取刚刚编码的输出并播放它,但这会引入几帧的延迟(太多)。我被告知VLC可以做到这一点,但也不是没有明显的滞后。
我现在能做的最好的事情就是让mplayer将它播放到屏幕上,同时使用“avconv -f x11grab”从显示屏上抓取视频并对其进行编码。这有效(它不会增加延迟)但是从显示屏上抓取视频很慢 - 我最终得到的是10 fps而不是30 fps。
必须有一些简单的方法将“tee”/ dev / video1分成两个虚拟设备,因此mplayer和mencoder都可以同时读取它们(没有一个抱怨设备“忙”)。 / p> 那是什么意思?
答案 0 :(得分:0)
不完全符合您的要求,但只需在一个程序中执行:GStreamer
(try gst-launch
)。它适用于bash
对输入/输出管道的视频流。
GStreamer的camerabin2插件可以毫无滞后地执行您需要的操作:播放流并录制它。虽然目前只能使用客户端代码,而不能使用gst-launch
。
tee
filter。