我有一个要求,每3秒记录一次mp4(mp4文件是连续的)。 并且使用ffmpeg我会在每生成3s mp4后将mp4文件转换为ts文件。 所以现在我有很多3s ts文件(ts文件是连续的,并且在播放器中播放)。 然后我生成一个m3u8文件,其中包含有关这些ts文件的信息。 一切看起来都很好,但是当我使用播放器播放m3u8文件时,总是在播放第一个ts文件后阻塞。
我认为m3u8中的ts文件之间肯定存在一些关系(可能是时间戳?)而我的没有这些关系所以我的m3u8在第一个ts文件播放后阻塞。
我对ts和m3u8了解不多,有谁能告诉我m3u8中ts文件之间的关系,或者我如何生成正确的m3u8文件?
答案 0 :(得分:0)
你的m3u8文件是什么样的? 像这样的东西?
#EXTM3U
#EXT-X-TARGETDURATION:6
#EXT-X-ALLOW-CACHE:YES
#EXT-X-KEY:METHOD=AES-128,URI="http://example.com/path/to/resource.mp4/crypt.key?id=somekey"
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:6.000,
http://example.com/path/to/resource.mp4/segment1_0_a.ts
#EXTINF:6.000,
http://example.com/path/to/resource.mp4/segment2_0_a.ts
#EXTINF:6.000,
http://example.com/path/to/resource.mp4/segment3_0_a.ts
#EXTINF:1.992,
http://example.com/path/to/resource.mp4/segment4_0_a.ts
#EXT-X-ENDLIST
如有疑问,请阅读文档:https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-3