我已经设置Janus,以通过Raspberry Pi通过WebRTC传输H.264视频。使用Pi Camera时可以使用。但是,当我使用USB网络摄像头(Logitech C270)时,视频不会显示在浏览器中。
Pi Camera流和USB网络摄像头流之间的配置和命令行参数几乎相同。唯一的区别是使用Pi Camera,我使用raspivid
生成H.264编码的视频,然后将其通过管道传输到ffmpeg
以用作RTP流。而对于USB网络摄像头,我直接使用ffmpeg
从V4L2设备获取输入并将其编码为H.264。
更具体地说,对于Pi Camera,我的命令是:
raspivid -t 0 -n -fps 20 -pf baseline -b 700000 -o - | ./ffmpeg -re -i - -c:v copy -bsf dump_extra -an -r 20 -f rtp rtp://0.0.0.0:8004?pkt_size=1300
使用USB摄像头(Legitech C270),我的命令是:
./ffmpeg -f v4l2 -i /dev/video0 -bsf dump_extra -an -r 20 -codec:v h264_omx -profile:v baseline -f rtp rtp://0.0.0.0:8004?pkt_size=1300
Janus配置完全相同。
当视频不显示时,在Javascript控制台或Janus控制台上没有打印错误。 chrome://media-internals/
也没有显示任何错误。
如何进一步调试此问题?
您确定/ dev / video0实际上是您的Logitech摄像机吗?只要连接树莓派pi摄像头模块/ dev / video0就是pi摄像头模块。尝试找出您是否拥有正确的设备。
您可能还想创建一个mp4文件而不是rtp流。这样,您至少可以将问题追溯到ffmpeg或janus。如果您从ffmpeg得到了一个好的mp4文件,则问题可能出在其他地方。
您也没有从ffmpeg收到任何错误吗?