我在计算机上运行了一个Python应用程序,它使用我的网络摄像头,进行一些图像处理,并提供一些数据。
现在,我想通过某种服务器或网站提供数据和视频流,以便本地网络上的任何计算机或程序都可以访问数据和视频流(能够访问数据并查看视频供稿。)
我知道如何使数据可用 - 我可以使用像Flask这样的东西设置HTTP服务器。
但是,我不太确定如何以类似的方式提供视频流。我确实发现this问题 - OP与我的情况几乎相同 - 但答案是缺乏技术细节。我还发现this回答推荐了一些名为“flumotion”的内容,但评论中指出这是一个'nix解决方案,我主要使用windows。
以上述方式公开提供视频流的最佳方法或最佳Python库是什么?
答案 0 :(得分:3)
我曾经制作了一个完全用Python编写的DVR,用于控制视频采集卡的V4L2参数,并实现协议,通过低速无线电链路传输录制的文件。对于流媒体,我尝试了 VLC 和 ffserver 。在this answer中,您可以使用VLC找到我的大量测试,这可能适用于您想要做的事情。
由于我必须将文件记录到磁盘并将它们流式传输到本地Web界面(也使用web2py以Python编写),我最终使用ffmpeg
进程将流编码为 h264 ,将其记录到磁盘并转发到video loopback device。然后,当用户访问Web界面上的视频配置屏幕时,将启动另一个ffmpeg
进程,以使用UDP将视频从环回设备流式传输到视频播放器:
ffmpeg -loglevel quiet -f v4l2 -i /dev/video1 -f h264 -preset ultrafast udp://hostip:port
值得注意的是,由于此流是原始 h264 流,因此用户必须拥有VLC插件才能查看它,因为大多数基于Flash的视频播放器都无法使用处理原始 h264 流。