nginx - 将 H.264 直播流发送到 Nginx 并发布为 HLS 以嵌入到网站中

标签 nginx video-streaming html5-video h.264 http-live-streaming

根据this帖子 我尝试在网页上显示来自网络摄像机(AXIS M1145-L + CamStreamer 插件)的 H.264 实时流,而不使用任何外部浏览器插件(仅纯 HTML5)和桌面。

正如我所读到的那样,可以使用 video.js 和 HLS 来做到这一点,所以这就是我尝试过的:

Stream from camera (push to rtmp with CamStreamer) --> to nginx (rtmp module) --> 
nginx serves HLS --> display with video.js and videojs-hls plugin in browser

在使用 VLC 的 hls URL (http://192.168.1.105:8080/hls/movie.m3u8) 观看流时,我没有任何问题或滞后,但我无法让它在带有 video.js 的浏览器中工作。

它总是报告我无效媒体

原始流被推送到:rtmp://192.168.1.105:1935/hls/movie

192.168.1.105是运行nginx的机器。

然后可以在 http://192.168.1.105:8080/hls/movie.m3u8 上访问 Hls 流

我完全想避免的是需要重新编码视频,因为稍后运行视频的机器没有能力执行此操作,并且它也将是全高清流。这就是为什么我放弃了 FFmpeg(需要重新编码 Mp4 以进行直播)。此外,该机器无法连续访问互联网,因此也无法进行在线转码。

请帮忙。谢谢!

最佳答案

终于明白了。

使用 hls.js 库 ( https://github.com/dailymotion/hls.js ) 独立没有 video.js 就可以了。该视频现在可以在 Windows 7 上的 Chrome/Opera 中正常播放。尚未与其他人尝试。

所以我猜这是 video.js 的播放器/编解码器依赖问题。

带有播放器的 html 页面需要位于服务器上(而不是本地文件系统!),否则浏览器安全限制将会出现,从而阻止视频播放。注意到在浏览器中尝试本地 html 页面时,hls.js 演示使用相同的流。

感谢您的提示!

关于nginx - 将 H.264 直播流发送到 Nginx 并发布为 HLS 以嵌入到网站中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35793894/

相关文章:

linux - CentOS配置Nginx加载Laravel 5.8 Site

javascript - 单个服务器中的多个 ssl 域

linux - LNMP 服务器上的多个 php (php-fpm) 版本

php - 无法连接到我的 Ratchet/WebSocket 服务器

c++ - OpenCV VideoWriter 是否支持将帧写入 RTSP?

ffmpeg - 如何将 png 叠加到通过 ffmpeg 混入音频的管道视频源?

python - 如何使用 OpenCV 和 Python 在视频流中逐帧处理视频图像

android - 在响应式网站上检测移动设备的最大视频分辨率支持

html - html5 视频的最大持续时间(或文件大小)

javascript - iOS Safari,视频和比例呈现缓慢的问题