【问题标题】:Dummy video device - v4l2loopback - webRTC虚拟视频设备 - v4l2loopback - webRTC
【发布时间】:2014-05-26 21:14:20
【问题描述】:

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

如mplayer cam 所述,我正在使用 mplayer 播放此设备中的视频

我已经对源代码进行了修改,并成功播放了视频,并使用 xawtv 和 flashplayer(在 firefox 28 上)观看了视频。我试过用webRtc查看,但是不行。

你有什么想法吗?在 examples/yuv4mpeg_to_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>

视频约束取自 mplayer 输出:

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 

但问题依然存在:“出现以下错误:启动视频失败”..

使用 xawtv 和 flashplayer 都可以正确播放视频。

【问题讨论】:

  • 对我来说,v4l2-loopback 摄像头在 Firefox 中不起作用(设备显示但出错),但在 Chrome 中起作用。也许这里有同样的问题。

标签: webrtc webcam v4l2 vline v4l2loopback


【解决方案1】:

有两件事:

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

    $ dmesg | grep v4l2loopback
    [0000123.456] v4l2loopback driver version 0.8.0 loaded

  • v4l2loopback-device 只有在某些(其他)应用程序正在向其写入视频数据时才会显示为适当的网络摄像头。例如

    gst-launch videotestsrc ! v4l2sink device=/dev/video0

【讨论】:

    【解决方案2】:

    我能够使用 ffmpeg 让它工作。这是我使用的命令:

    ffmpeg -re -f lavfi -i "movie=my_video_file.mp4" -f v4l2 /dev/video0

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 您好,谢谢您的建议,但我已经尝试过使用 webcamstudio(v0.61 手动编译和 v0.54 预编译),我遇到了很多问题:缺少类、异常、没有开发/video 正在输出中..
      • 我认为这个问题很可能与 vLine 无关 - 更可能的故障点在于提供源的环回驱动程序和实际解码流的浏览器 - 我会尝试另一个浏览器 -在使用 flash 客户端的其他站点(如 jtv)上尝试当前设置,看看是否可以从这些站点中获得任何输出,以确保它不仅在 webRTC 或 vLine 上失败 - 你可能会发现当前设置在任何地方都不起作用 - 而且你会可能通过询问 V4l2loopback 或浏览器窥视来进一步了解这个
      • 这是我遵循的方式:xawtv 工作,flashplayer 工作,我已经完成了一个基本脚本来测试制作视频视图的第一步,并且不适用于主要浏览器(firefox 28 和谷歌浏览器 35)
      • 如果您指的是 Flash 媒体编码器,这不是我的建议 - 我建议您访问 justin.tv 或 ustream 之类的网站,并尝试使用他们基于 Flash 的浏览器插件进行广播看看你的浏览器是否可以访问你的设备 - 如果不能,那么也试试 firefox - 如果你不能在 jtv 上广播,那么这不是 webRTC 或 vLine 问题
      • 我之前的测试参考这个:testwebcam.com是不是和ustream一样?无论如何,两者都很好..
      猜你喜欢
      • 1970-01-01
      • 2021-06-12
      • 2015-03-29
      • 1970-01-01
      • 2021-04-06
      • 2021-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多