第一个问题,请善待。
我的目标是下载一个 .mp4 文件,切掉音频,进行分段,然后将 .mp4 拆分为分段。预期的结果是有一个 init.mp4 一个 .m3u8 文件以及多个可在浏览器中播放的 .m4s 段。
到目前为止我做了什么。使用以下命令下载视频文件并切断音频流:
ffmpeg -i sound.mp4 -vc copy -an nosound.mp4
在此之后,我通过这样做来分割结果:
mp4fragment nosound.mp4 frag.mp4
然后我尝试拆分碎片 frag.mp4 以创建 init.mp4 + .m3u8 + .m4s,如下所示:
ffmpeg -i output.mp4 -hls_time 1 -hls_segment_type fmp4 output.m3u8
为了查看它是否有效,我创建了一个 HTML 文件并插入了 .m3u8 文件作为视频标签的来源。
HTML:
<!DOCTYPE html>
<html>
<head>
<link href="https://vjs.zencdn.net/7.4.1/video-js.css" rel="stylesheet">
</head>
<body>
<video class="video-js" width="1920" height="1080" data-setup='{}' controls>
<source src="prog_index.m3u8" type="application/x-mpegURL">
</video>
<script src='https://vjs.zencdn.net/7.4.1/video.js'></script>
</body>
</html>
在此之后,我用 python3 启动了一个本地服务器,看看我是否做对了,但显然浏览器(谷歌浏览器)无法加载文件并显示错误:
无法加载媒体,原因可能是服务器或网络出现故障,或者格式不受支持。 Chrome 控制台报告
我尝试了相同的过程,但没有切断音频的第一部分并且它起作用了,所以我肯定做错了什么。