首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ffmpeg将片段附加到不带#EXT-X-DISCONTINUITY标记的m3u8文件

ffmpeg将片段附加到不带#EXT-X-DISCONTINUITY标记的m3u8文件
EN

Stack Overflow用户
提问于 2020-08-26 15:42:01
回答 1查看 1.9K关注 0票数 2

每隔几秒钟,我就会从服务器接收到一段很长的音频文件。我想对这些块进行分段,并创建一个m3u8播放列表来在浏览器中播放音频。

我可以创建m3u8文件,并每隔几秒钟将片段附加到该文件,直到我收到最后一个块,该文件可以在浏览器中播放。问题是,ffmpeg向m3u8文件添加了#EXT-X-DISCONTINUITY标签,这会给音频添加短暂的静默时间,并且浏览器中的播放听起来并不流畅。

有没有办法告诉ffmpeg,我所有的独立文件实际上属于同一个位置(相同的源代码和编码),并且不再添加#EXT-X-DISCONTINUITY标记?或者,有没有办法避免这个标签添加的短静默时间?或者,有没有其他方法可以尝试从独立文件创建流畅的音频流?

我的最终m3u8文件:

代码语言:javascript
复制
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:2
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:EVENT
#EXTINF:1.792000,
http://localhost:9000/aacf6dc4-9f3e-4f76-86b6-3e0f01a65d88000000.ts
#EXT-X-DISCONTINUITY
#EXTINF:1.792000,
http://localhost:9000/aacf6dc4-9f3e-4f76-86b6-3e0f01a65d88000001.ts
...
#EXT-X-DISCONTINUITY
#EXTINF:1.792000,
http://localhost:9000/aacf6dc4-9f3e-4f76-86b6-3e0f01a65d88000006.ts
#EXT-X-ENDLIST

我的ffmpeg命令:

代码语言:javascript
复制
# create the playlist
ffmpeg -y -i <chunk.flac> -hls_playlist_type event -hls_base_url http://localhost:9000/ -hls_segment_filename <segment> -hls_time 2 -hls_flags omit_endlist playlist.m3u8 

# append to playlist
ffmpeg -y -i <chunk.flac> -hls_playlist_type event -hls_base_url http://localhost:9000/ -hls_segment_filename <segment> -hls_time 2 -hls_flags omit_endlist+append_list playlist.m3u8

# finish the playlist
ffmpeg -y -i <chunk.flac> -hls_playlist_type event -hls_base_url http://localhost:9000/ -hls_segment_filename <segment> -hls_time 2 -hls_flags append_list playlist.m3u8
EN

回答 1

Stack Overflow用户

发布于 2020-08-26 22:19:24

我看了libavformat/hlsenc.c的代码

代码语言:javascript
复制
if (hls->flags & HLS_APPEND_LIST) {
            parse_playlist(s, vs->m3u8_name, vs);
            vs->discontinuity = 1;

只要使用append_list,就会插入一个不连续点。除非您添加一个选项并修补#EXT-X-DISCONTINUITY -我认为您无法避免使用ffmpeg标记。

但是您可以使用一个简单的命令行对播放列表进行后处理:

代码语言:javascript
复制
grep -v "#EXT-X-DISCONTINUITY" playlist.m3u8 > temp; mv temp playlist.m3u8
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63592822

复制
相关文章

相似问题

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