Safari中HLS流(HEVC/fMP4)无法播放,H.264正常,求排查方案
HLS流媒体HEVC编码流在Safari无法播放的排查思路求助
我尝试在HTML video标签中部署HLS流媒体,媒体文件由FFmpeg 5.1编码。其中H.264编码的流可在Safari中正常播放,但HEVC编码的流无法运行。演示站点:http://47.254.74.168:8080/,恳请各位提供排查思路,谢谢!
使用的FFmpeg命令如下:
ffmpeg -i Big_Buck_Bunny_360_10s_10MB.mp4 -f hls -hls_segment_type mpegts h264-ts/stream.m3u8 ffmpeg -i Big_Buck_Bunny_360_10s_10MB.mp4 -f hls -hls_segment_type fmp4 h264-fmp4/stream.m3u8 ffmpeg -i Big_Buck_Bunny_360_10s_10MB.mp4 -c:v libx265 -tag:v hvc1 -f hls -hls_segment_type mpegts h265-ts/stream.m3u8 ffmpeg -i Big_Buck_Bunny_360_10s_10MB.mp4 -c:v libx265 -tag:v hvc1 -f hls -hls_segment_type fmp4 h265-fmp4/stream.m3u8
排查思路参考:
- 确认Safari系统版本:Safari仅在macOS 10.13+、iOS 11及以上版本原生支持HEVC播放,先排查测试设备的系统版本是否达标。
- 优先测试fMP4格式的HEVC流:Safari对HEVC的HLS流仅支持fMP4分片格式(即
-hls_segment_type fmp4),TS分片的HEVC流大概率不被兼容,重点验证h265-fmp4路径下的流。 - 检查编码参数合规性:用
ffprobe h265-fmp4/stream.m3u8查看流信息,确认HEVC流的codec_tag为hvc1,同时检查SPS/PPS是否正确嵌入,编码profile建议使用Main或Main10。 - 验证M3U8文件规范:使用HLS validator工具检查M3U8文件是否符合HLS v7及以上版本规范,确保
EXT-X-VERSION设置为7或更高,分片URL路径正确。 - 检查服务器响应配置:确保服务器返回的fMP4分片文件Content-Type为
video/mp4,TS分片为video/MP2T;同时确认服务器已配置CORS,允许浏览器跨域加载媒体资源。 - 直接测试分片文件:将HEVC分片文件的URL直接输入Safari地址栏,测试是否能单独播放,以此区分是编码问题还是HLS封装问题。
内容的提问来源于stack exchange,提问作者S.N.
相关产品推荐
相关产品推荐

