2016-03-08 114 views
4

我试图在网页上显示实况网络摄像头视频流,并且我有一份工作草案。但是,我对表现不满意,并寻找更好的方式来完成这项工作。网页上的实况视频编码和流式传输

我有一个摄像头连接到Raspberry PI和一个简单的python-Flask服务器的Web服务器。通过使用OpenCV捕获网络摄像头图像并将其格式化为JPEG。之后,这些JPEG将被发送到服务器的一个UDP端口。我到目前为止所做的就像是一个自制的MJPEG(motion-jpeg)流媒体。

在服务器端,我有一个简单的python脚本,它不断读取UDP端口并将JPEG图像放入HTML5画布中。这足以快速创建直播视频。

问题:

  • 该压缩视频非常小。实际上它不会压缩视频。它只能通过格式化为JPEG来减小帧的大小。

  • FPS低,质量也不是很好。

  • 这不是现在的主要观点,但UDP并不是安全的视频流传输方式。

  • 服务器正忙于从UDP中进行图像拾取。需要线程化服务器设计。

替代方案:

  • 我已经使用FFMPEG之前转换视频格式,同时也流预先录制的视频。我想,可以使用ffmpeg或avconv进行编码(比如说H.264)并将WebCam实时视频流。 (编码)

这是适用于树莓派?

  • VLC能够播放在网络上流传的实况视频。 (流)

是否有任何媒体播放器嵌入HTML/Javascript来处理类似的VLC 网络流呢?

  • 我已阅读关于HLS(HTTP实时流)和MPEG-DASH。

这些适用于这种情况吗?如果是这样,我应该如何使用它们?

是否有任何其他方式在网页上显示直播?

  • RTSP是一种安全协议。

什么是视频流 传输层协议的最佳做法?

回答

0

您可以使用FFmpeg将视频流复合到H.264中的mp4容器中,然后可以直接在HTML5视频元素中使用。