首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >命令mux视频流进入HLS fMP4

命令mux视频流进入HLS fMP4
EN

Stack Overflow用户
提问于 2020-08-15 15:21:12
回答 1查看 1.1K关注 0票数 0

我一直试图在iThing (ipad或iphone)上显示我的IP摄像头输出到一个网页上。

我在下面的视频标签中播放下面的输出

代码语言:javascript
复制
<video id='hls-example'  class="video-js vjs-default-skin" width="400" height="300" controls>
       <source type="application/x-mpegURL" src="http://127.0.0.1/wordpress/prog_index.m3u8">
</video>

我使用ffmpeg来实现mux/转换(我的术语可能是错的),相机http流(而不是RTSP流)。

我尝试了以下多个命令和,有些命令可以在PC/Chrome上运行,但没有一个在ipad/safari或chrome上工作。

所有文件都是在the服务器上正确的位置生成的,以允许播放这些文件。

代码语言:javascript
复制
ffmpeg -i http://username:password@192.168.102.92/ISAPI/Streaming/channels/102/httpPreview  -force_key_frames "expr:gte(t,n_forced*2)" -sc_threshold 0 -s 640x480 -c:v libx264 -b:v 1536k -c:a copy -hls_time 6 -hls_playlist_type vod -hls_segment_type fmp4 -hls_segment_filename "fileSequence%d.m4s" -hls_wrap 3 prog_index.m3u8
代码语言:javascript
复制
ffmpeg -i http://username:password@192.168.102.92/ISAPI/Streaming/channels/102/httpPreview  -force_key_frames "expr:gte(t,n_forced*2)" -sc_threshold 0 -s 640x480 -c:v libx264 -b:v 1536k -c:a copy -hls_time 6 -hls_playlist_type vod -hls_segment_type fmp4 -hls_segment_filename "fileSequence%d.m4s" -hls_list_size 10 prog_index.m3u8
代码语言:javascript
复制
ffmpeg -i http://username:password@192.168.102.92/ISAPI/Streaming/channels/102/httpPreview  -force_key_frames "expr:gte(t,n_forced*2)" -sc_threshold 0 -s 640x480 -b:v 1536k -c:a copy -hls_time 6  -hls_segment_type fmp4 -hls_segment_filename "fileSequence%d.m4s" -hls_list_size 10 prog_index.m3u8
代码语言:javascript
复制
ffmpeg -i http://username:password@192.168.102.92/ISAPI/Streaming/channels/102/httpPreview -force_key_frames "expr:gte(t,n_forced*2)" -sc_threshold 0 -s 640x480 -b:v 1536k -c:a copy -hls_time 3 -hls_flags delete_segments -hls_segment_type fmp4 -hls_segment_filename "fileSequence%d.m4s" prog_index.m3u8

有人能指出我哪里出错了吗,我认为是FFMPEG cmd?

EN

回答 1

Stack Overflow用户

发布于 2020-12-16 11:26:51

由于-hls_playlist_type vod参数,第一和第二命令可能无法工作。VOD是为静态文件制作的。由于您有一个IP摄像头LiveStream,这可能会造成问题。如果您想要完整的历史记录(在特定的点开始流,并保持整个历史直到编码停止),则应该使用事件。如果您只想要一个livestream,请删除该参数。

第二,所有命令复制音频流。由于您已经做了视频编码,音频编码不会占用更多的CPU负载。因此,我也建议重新编码音频。这允许FFmpeg完美地创建HLS段。-c:a aac -b:a 128k -ac 2将是这方面的一个良好开端。

苹果还提供了工具 (纵横验证器和hlsreport)来验证您的HLS流(您需要一个mac来运行这个工具)。如何使用它们的详细信息:https://www.martin-riedl.de/2018/09/09/hls-stream-validation/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63427653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档