我有一个Logitech C920网络摄像头。它具有直接在H264中编码视频的能力。
我想重现使用Beaglebone完成的操作,但是要使用Raspberry Pi:将H264流发送到网络。然后,Raspberry Pi仅在此处用于打包RTP中的流,视频压缩由网络摄像头本身完成。使用video4linux强制执行H264模式。
到目前为止,如果我在最新版本的Ubuntu上使用普通计算机,则可以将VLC用作服务器或GStreamer。例如,如果我在Raspberry Pi上使用以下命令启动VLC服务器:
cvlc --sout=#rtp{sdp=rtsp://:8554/test} 'v4l2:///dev/video0:chroma=H264:width=800:height=600:fps=30'
...然后,如果我在另一台计算机上使用VLC读取了流,那么一切正常。
但是,如果我使用树莓派发送视频流,则结果会很差。一旦有东西移动,图像中就会有很多垃圾。图像密钥每10秒收到一次,但与此同时,与来自普通计算机的流相比,它还不够好。
我还尝试了使用提供的“捕获”实用程序为beaglebone所描述的方法:好的,如果我从真实计算机中进行流式处理,则如果我从Raspberry Pi中进行流式处理,则出现相同的垃圾问题。
这不是网络问题:我使用Wireshark和VLC的统计信息进行了一些网络检查,没有数据包丢失。我尝试过使用Raspbian和用于Raspi的Arch Linux(在raspbian中使用gstreamer 0.10,在Arch Linux中使用gstreamer 1.0)。
我不知道它是否相关,但是我也使用Raspbian的soft float支持版本进行了测试。使用3.2内核必须首先完成更新; 但同样的问题,视频有一些垃圾。
我有什么办法可以提高视频质量吗?