![Nginx RTMP 到 HLS 问题](https://linux22.com/image/1620981/Nginx%20RTMP%20%E5%88%B0%20HLS%20%E9%97%AE%E9%A2%98.png)
我正在尝试找出在已启用 HLS 的情况下推送到 RTMP 时出现的问题。下面是我使用的命令:
ffmpeg -i hls.m3u8.url -vcodec: copy -acodec libfdk_aac - -f flv rtmp://serverurl/live/test
一切都很好,一切都按预期工作。但是,随着源的动态变化,例如从远端切换到另一个源,如果我通过 RTMP 观看,它会显示正确。但是,如果我使用由 RTMP 模块生成的 HLS 播放列表,视频会出现重影/失真,但声音可以正常播放。直到源视频恢复到原始状态,它才会恢复正常。
如果我使用 HLS 复制而不是使用 RTMP/HLS,那么它可以正常工作。
为什么写入 HLS 文件的 RTMP 模块会使视频混乱?
是否有命令可以修复它?
它不喜欢源动态更改视频并继续将.ts
文件写入损坏的文件。我可以停止 RTMP 并重新启动。然后它会清除视频,直到源视频在中间再次更改。
请记住:如果我通过 观看同一个视频rtmp://
,视频切换正常。只有生成的 HLS 播放列表显示音频像素化/重影。
使用诸如此类的 HLS 命令-start_number 0 -hls_time 10 -hls_list_size 0
可以纠正这些问题。但是,对于 RTMP,没有这样的命令。
这是我的 nginx 配置:
allow play all;
live on;
hls on;
hls_path /home/live;
hls_fragment 10s;
hls_cleanup on;
有人遇到过这个问题吗?