Gstreamer-Webrtc我的管道应该乘以吗?

时间:2019-01-14 04:07:16

标签: webrtc gstreamer

正在发生的事情:

我很好奇应该如何设置管道?我正在通过webrtc将原始的h264流发送到浏览器。我看到了一个通过webrtc发送原始vp8的示例。

症状

我问的原因是我的视频流中出现伪像(视频乱码?)。视频将播放一秒钟(几帧),然后停止约5秒钟,然后再次播放几帧。我正在尝试从树莓派上使用它。

我尝试过的事情

我使用笔记本电脑尝试了相同的脚本,但效果很好。我不确定为什么我会从一台设备上收到乱码视频,而从另一台设备上看不到吗?

我首先想到的是,这可能与cpu瓶颈有关,我在pi的顶部查看了60%-100 +%。 (即时编码为h264)。但这可能是缓冲不正确吗?我尝试从rpi相机捕获h264流,但cpu值很低,但确实存在相同的问题。

更有趣的是,当我使用firefox并停了几下(视频Stoppes持续<1秒,但仍在继续)时,它似乎可以正常工作。至于为什么我不确定。

我在笔记本电脑和pi上都使用了gstreamer 1.15(git)

这是我的管道:

PIPELINE_DESC = '''
webrtcbin name=sendrecv bundle-policy=max-bundle
 videotestsrc is-live=true ! x264enc ! h264parse ! rtph264pay config-interval=-1 ! 
 queue ! application/x-rtp,media=video,encoding-name=H264,payload=96 ! rtpjitterbuffer ! sendrecv.
 audiotestsrc is-live=true wave=red-noise ! audioconvert ! audioresample ! queue ! opusenc ! rtpopuspay !
 queue ! application/x-rtp,media=audio,encoding-name=OPUS,payload=96 ! sendrecv.
'''
#this works videotestsrc h264enc on firefox, chrome gives artifacts

这是来自pi的视频:

enter image description here

我们可以看到底部应该在右侧显示一个带有雪花图案的小盒子(就像您在没有信号的旧CRT上看到的一样)

我以这个python项目为基础,我只是替换了管道: https://github.com/centricular/gstwebrtc-demos

如果有人可以帮我弄清楚为什么或我可以尝试的话,那会很棒。

0 个答案:

没有答案