将视频从raspberri pi传输到互联网

问题描述 投票:0回答:1

我正在做我的第一个大覆盆子pi项目,遇到了我无法逾越的障碍。我正在使用REST API从Internet上的网站远程控制我的树莓派,现在我想添加视频流功能(没什么花哨的功能),但是我在互联网上找不到有关此内容的信息。我的问题是我无法弄清楚如何传输帧(据我了解,它必须是jpeg图像而不是真正的视频)以及如何在网页上实际显示它们。到目前为止,我只能在localhost中查看流,并且我不知道如何将其发布到Internet虚拟主机上的网页。

我尝试使用python这样的请求库发送帧:

img_for_post = stream.read()    
data = {'image': img_for_post, 'name':'webcan_stream'}
response = requests.post(url='http://my-website-on-the-internet.com/index.php?stream', data=data) 

但是它似乎没有发送图像。我正在尝试使用rest api,因为我不能(也不想)使用端口转发。

python rest raspberry-pi video-streaming webcam
1个回答
0
投票

根据我的了解,它必须是jpeg图像而不是真实的视频

不,相反。你在哪里读的?发送JPEG帧的效率非常低。如果由于某种原因必须使用JPEG,请至少发送MJPEG流。

根据您的需求,实际上很简单,只需启动FFmpeg并通过HTTP直接将其通过管道传输到您的浏览器客户端即可。我不记得我曾经使用过的确切命令行,而是尝试如下操作:

ffmpeg -i [your source] -f webm -

这将从STDOUT输出WebM视频,然后在您的Python脚本中,将数据通过管道传输到HTTP客户端。

在客户端上,他们只能使用普通的视频标签:

<video src="https://example.com/stream" preload="none"></video>

其他执行此操作的方法包括DASH / HLS,它对更多用户或使用CDN很有用,如果需要低延迟,则可以使用WebRTC。

© www.soinside.com 2019 - 2024. All rights reserved.