首页 > 解决方案 > 从 apache2 HTTPS 服务器(覆盆子 pi)实时流式传输视频的简单方法进化了吗?

问题描述

我是一个试图设置树莓派 3 以将视频直播到 HTTPS 站点的老笨蛋。经过与 raspbian strech、apache2 的激烈斗争并获得了安全证书后,我设法在 raspberry 上托管了 HTTPS 域,但我无法让视频在本地网络之外显示。我在域中编辑了索引页面以嵌入实时视频,当我从本地网络上的 Windows PC 加载到 chrome 时,这显示了实时流,但是尽管页面从本地网络外部加载,但没有视频显示。网址是https://rydepier.com 奇怪的是视频流在我的 WAN IP 的 8081 端口上可供任何人查看。没有一种简单的方法可以将其嵌入 HTML5 页面吗?

视频流来自通过“运动”服务连接到 pi 的 USB 摄像头,并且(据我所知)h264 编码,没有 mp4 包装器

这是索引页面的代码(HTML新手非常混乱)标记的mp4视频本地存储在pi上的HTML文件中

<html>

<head>

    <title>Number 4 Homepage </title>

    <style>

        body

        {

            margin: 20px;

            padding: 0px;

        }

        img

        {

            width: 90%;

            <!height: 50%;>

        }

    </style>

</head>

<body>

    <h1>Greetings from Number 4</h1>

    <p>Live view from the Mezanine Deck.</p>



    <img style="-webkit-user-select: none;" src="http://192.168.1.10:8081/">        <h1>Solstice 2019.</h1>

    <video width="640" height="480" controls>

    <source src="vid2.MP4" type="video/mp4">



    Your browser does not support the video tag.

    </video>

</body>

标签: htmlapache2live-streaming

解决方案


您无法从外部访问视频的原因是您用来访问它的方法是通过本地 IP 地址。无需过多详细介绍,地址范围 192.168.0.0 – 192.168.255.255 中的本地地址(私有 IP)在该网络上将是唯一的,但互联网上的用户无法公开访问。这类似于我可以访问 C:\Users 目录中的文件的方式,但是如果我希望其他人可以访问它,我需要将它放在服务器上的某个地方。

解决方案是您必须从公共 IP 访问。您实际上可以将 192.168.1.10:8081 替换为 rydepier.com:8081,而不是手动查找。DNS 会将域转换为其正确的公共 IP 地址,并且视频将流式传输到任何地方。

事实上,我知道这一点是因为我无法访问私有 IP 地址视频流,但我可以在http://rydepier.com:8081访问它

代替

<img style="-webkit-user-select: none;" src="http://192.168.1.10:8081/">        <h1>Solstice 2019.</h1>

<img style="-webkit-user-select: none;" src="http://rydepier.com:8081/">        <h1>Solstice 2019.</h1>

推荐阅读