虚拟视频设备-v4l2loopback-webRTC

虚拟视频设备-v4l2loopback-webRTC,webrtc,webcam,v4l2,vline,v4l2loopback,Webrtc,Webcam,V4l2,Vline,V4l2loopback,我需要播放多个视频测试视频服务器。我正在使用lubuntu 14.04并已安装以生成设备文件(/dev/videoN) 我正在使用mplayer从该设备播放视频,如上所述 我已经对源代码进行了修改,并成功地播放了视频,并使用xawtv和flashplayer(在Firefox28上)观看了视频。我尝试使用webRtc进行查看,但无法正常工作 你有什么办法吗?在examples/yuv4mpeg_到_v4l2.c中有一些特定的像素格式需要定义 我试图通过使用以下脚本直接访问资源来查找问题: &l

我需要播放多个视频测试视频服务器。我正在使用lubuntu 14.04并已安装以生成设备文件(/dev/videoN)

我正在使用mplayer从该设备播放视频,如上所述

我已经对源代码进行了修改,并成功地播放了视频,并使用xawtv和flashplayer(在Firefox28上)观看了视频。我尝试使用webRtc进行查看,但无法正常工作

你有什么办法吗?在examples/yuv4mpeg_到_v4l2.c中有一些特定的像素格式需要定义

我试图通过使用以下脚本直接访问资源来查找问题:

<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">

    <title>Test rtc</title>
    <script type="text/javascript" charset="utf-8">

    navigator.getUserMedia = 
    ( 
        navigator.getUserMedia ||
        navigator.webkitGetUserMedia ||
        navigator.mozGetUserMedia ||
        navigator.msGetUserMedia
    );

    var constraints = 
    {
        audio: true,
        video:true,
        video: 
        {               
            mandatory: 
            {
              minWidth: 640,
              minHeight: 360
            }
        }
    };

    if( navigator.getUserMedia ) 
    {
        navigator.getUserMedia(

            // constraints
            constraints ,

            // successCallback
            function(localMediaStream) 
            {

                var video = document.querySelector('video');
                video.src = window.URL.createObjectURL(localMediaStream);

                video.play();

                console.log( video );
                console.log( localMediaStream );
            },

            // errorCallback
            function(err) 
            {
                console.log("The following error occured: " + err);
            }
        );
    } 
    else 
    {
        console.log("getUserMedia not supported");
    }

    </script>

</head> 
<body>
    <video>   
</body> 
</html>
但问题仍然存在:“出现以下错误:启动视频失败”


视频在xawtv和flashplayer上都能正确播放和观看。

不确定这是否有帮助,但你可以尝试使用webcamstudio-它可以创建一个环回设备,也可以进行源混合-我记得它使用ffmpeg作为后端,因此你应该能够将其调整为任何你喜欢的格式有两件事:

  • 您需要一个足够新的
    v4l2loopback
    模块,IIRC您必须至少使用
    0.7.1

    $dmesg| grep v4l2loopback

    [0000123.456]已加载v4l2loopback驱动程序版本0.8.0

  • v4l2loopback
    -只有在某些(其他)应用程序正在向其写入视频数据时,设备才会显示为一个正确的网络摄像头。e、 g

    gst启动videotestsrc!V4L2Link设备=/dev/video0


我能够使用ffmpeg实现这一点。这是我使用的命令:

ffmpeg-re-f lavfi-i“movie=my\u video\u file.mp4”-f v4l2/dev/video0


这样做之后,我可以从我的WebRTC应用程序访问这个虚拟网络摄像头,它无限循环播放视频文件。

嗨,谢谢你的建议,但我已经尝试使用webcamstudio(v0.61手动编译和v0.54预编译),我遇到了很多问题:缺少类、异常、,输出中没有开发/视频..我认为问题很可能与vLine无关-更可能的故障点在于提供源代码的环回驱动程序和实际解码流的浏览器-我会尝试其他浏览器-在使用flash客户端的其他网站(如jtv)上尝试当前设置,看看是否可以获得任何结果从这些输出确保它不仅在webRTC或vLine中失败-您可能会发现您当前的设置在任何地方都不起作用-您可能会通过询问V4l2loopback或浏览器窥视进一步了解这一点这是我遵循的方式:xawtv工作,flashplayer的工作和我已经做了一个基本的脚本来测试制作视频视图的第一步,但不适用于主流浏览器(firefox 28和google chrome 35)如果你指的是flash media encoder,那不是我的建议-我建议你访问一个像justin.tv或ustream这样的网站,并尝试使用基于flash的浏览器插件在那里进行广播,看看你的浏览器是否可以访问你的设备-如果它不能访问,那么也可以尝试firefox-如果你不能在jtv上广播,那么它就是不是webRTC或vLine问题我之前的测试是指:与ustream不一样吗?无论如何,两者都能很好地工作。对我来说,v4l2环回摄像头在Firefox中不起作用(设备显示错误),但在Chrome上起作用。也许这里也有同样的问题。
VIDEO:  640x360  25.000 fps  555.0 kbps (69.4 kB/s)
[swscaler @ 0x7f83633f3640]BICUBIC scaler, from yuv420p to yuv420p using MMXEXT
VO: [yuv4mpeg] 480x360 => 640x360 Planar YV12