gpt4 book ai didi

ffmpeg - 如何使用 FFMPEG 创建具有恒定持续时间的 m3u8 播放列表和 mpeg-ts block ?

转载 作者:行者123 更新时间:2023-12-02 15:14:32 25 4
gpt4 key购买 nike

我有 mp4 文件(Big Buck Bunny):
持续时间:00:09:56.50
比特率:2048 kb/s
尺寸:1280x720
帧率:29.97
我在 2 秒后设置了恒定关键帧。
我想为 HLS 准备此视频。
我用它来生成 m3u8 播放列表并生成 ts block :

ffmpeg -i input.mp4 -hls_time 2 out.m3u8

但不幸的是我不明白它是如何工作的。
我以为这个命令会生成 298 个 2 秒的 block ,但它只生成 152 个不同长度(3 - 9 秒)的 block 。
但最奇怪的是它创建的 m3u8 文件只有 5 个文件链接。

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:9
#EXT-X-MEDIA-SEQUENCE:148
#EXTINF:8.341667,
out148.ts
#EXTINF:7.841167,
out149.ts
#EXTINF:0.967633,
out150.ts
#EXTINF:8.341667,
out151.ts
#EXTINF:7.140467,
out152.ts
#EXT-X-ENDLIST

我认为 m3u8 文件必须包含视频的所有部分。有人可以解释一下如何每 2 秒创建 298 个 block 并正确填充 m3u8 文件吗?

最佳答案

要强制每 2 秒出现一次关键帧,您可以使用 -g 指定 GOP 大小:

ffmpeg -i input.mp4 -g 60 -hls_time 2 out.m3u8

其中 29.97 fps * 2s ~= 60 帧,表示每 60 帧一个关键帧。

否则它将等待在关键帧上分割,并且最短持续时间会有所不同。

要保留所有段,请添加 -hls_list_size 0,否则仅保留默认值 5。

关于ffmpeg - 如何使用 FFMPEG 创建具有恒定持续时间的 m3u8 播放列表和 mpeg-ts block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33152588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com