我需要从 DVBViewer 的 Netstreamer 插件流式传输视频,但捕获其屏幕视频输出太滞后。
是否有任何虚拟网络摄像头软件可以接受 HTTP 实时流作为视频源?
答案1
如果你使用的是 Linux,你可以使用v4l2loopback 与 mplayer。
- 下载它,
- 编译它(
make
并且su -c 'make install'
), - 使用以下方式加载模块
su -c 'modprobe v4l2loopback'
, examples/yuv4mpeg_to_v4l2.c
然后将v4l2loopback 源文件夹文件中的一行从v.fmt.pix.pixelformat = V4L2_PIX_FMT_YUV420;
到
v.fmt.pix.pixelformat = V4L2_PIX_FMT_YVU420;
make
并在此文件夹中执行。examples
然后从如下目录运行它:mkfifo /tmp/pipe # only needed once, as long as you do not delete the file /tmp/pipe ./yuv4mpeg_to_v4l2 < /tmp/pipe & mplayer movie.mp4 -vf scale=480:360 -vo yuv4mpeg:file=/tmp/pipe
movie.mp4
用视频文件的名称替换其中的内容。 并/dev/video0
用环回设备替换其中的内容。
MPlayer 能够播放任何网络流、所有类型的视频文件等等。我刚刚用一个文件测试了它http://www.tagesschau.de这是一个德国新闻网站。
TS=$(wget "http://www.tagesschau.de/multimedia/video/" -q -O - | grep --regexp='http.*\.webm"' | sed -e 's%.*href="%%' -e 's%\.webm".*%\.webm%')
./yuv4mpeg_to_v4l2 < /tmp/pipe &
mplayer $TS -vf scale=480:360 -vo yuv4mpeg:file=/tmp/pipe