audio - ffmpeg HLS 多音频再现
问题描述
如何将包含 3 个音轨(英语、德语和法语)的 mp4 视频文件转换为具有以下内容的 HLS 播放列表:
- 一个 videofile.m3u8 及其对应的segmentsfile.ts
- 一个 audiofile-english.m3u8 及其对应的segmentsfile.aac
- 一个 audiofile-german.m3u8 及其对应的segmentsfile.aac
- 一个 audiofile-french.m3u8 及其对应的segmentsfile.aac
- 一个这样的masterfile.m3u8:
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="medium",NAME="#1 Fre",DEFAULT=YES,AUTOSELECT=YES,LANGUAGE="fre",URI="medium/planete_interdite_500_h264_240p_audio1_fre.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="medium",NAME="#2 Eng",DEFAULT=NO,AUTOSELECT=YES,LANGUAGE="eng",URI="medium/planete_interdite_500_h264_240p_audio2_eng.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="medium",NAME="#3 Fre",DEFAULT=NO,AUTOSELECT=YES,LANGUAGE="de",URI="medium/planete_interdite_500_h264_240p_audio1_de.m3u8"
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=3274000, CODECS="avc1.66.30,mp4a.40.2",RESOLUTION=854x480,AUDIO="medium"
medium/planete_interdite_2080_q264_480p.m3u8
解决方案
您可以使用 ffmpeg 首先仅转换带有标志 -an -sn 的 hls 视频,然后使用标志 -vn -sn 转换 hls 音频流,最后使用一些脚本制作播放列表
推荐阅读
- scala - 测量 Alpakka 流的内存消耗、吞吐量和时间
- google-chrome-extension - Chrome 扩展程序:按顺序创建标签
- android - 如何在android中读取块文件并显示为pdf?
- android - Android Room 自动生成和初始化
- reactjs - JSX 图像源标签中的 SVG 在生产中不起作用
- html - CSS'如何将导航栏与图像一起居中?
- php - 尽管进行了彻底的设置和调整,但仍无法禁用 PHP 缓存
- android - 如何在没有身份验证器的情况下将用户存储在打开的应用程序上?
- excel - 可以编写什么代码来对到期日期进行排序?
- r - 在 R 中编写使用 tidyr 的“收集”将相似数据帧转换为长格式的函数时出现问题