ffmpeg 寻求 (-ss) 过去 13:15:20 不工作

ffmpeg seeking (-ss) not working past 13:15:20

我正在尝试每 30 分钟从抽动式 VOD 中拉出一个帧,但直到我尝试在 13:30:00 拉出帧时它才起作用。直到这个时间戳之前它都可以正常工作。

它适用的最后一个时间戳是 13:15:20,13:15:21 之后将不起作用。 当卡住时,它会循环打印以下内容,直到我强行停止它:

frame= 0 fps=0.0 q=0.0 Lsize=N/A time=00:00:00.00 bitrate=N/A speed= 0x

确切的失败是

ffmpeg -ss 13:30:00 -i https://d1ymi26ma8va5x.cloudfront.net/ad7df46d01d076a6cab0_ironmouse_44606619692_1644025354/chunked/index-muted-FMTK8V9QQ2.m3u8 -frames:v 1 -q:v 2 OutputFile_27.jpeg

我试过其他链接,但在同一个地方也失败了。

是什么导致了这个错误,有没有办法让它工作? (或者一般来说更好的方法)

您的命令在 v5.0 上运行良好。如果您使用的不是最新版本 (master/release),请进行更新。否则,也许更好的方法是直接读取 .ts 文件。如果您查看 .m3u8(文本)文件,它会列出一大堆 .ts 文件(您链接的文件每 10 秒就有一个 .ts 文件。例如,

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:12
#ID3-EQUIV-TDTG:2022-02-06T04:18:26
#EXT-X-PLAYLIST-TYPE:EVENT
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-TWITCH-ELAPSED-SECS:0.000
#EXT-X-TWITCH-TOTAL-SECS:95519.004
#EXTINF:10.000,
0.ts
#EXTINF:10.000,
1.ts
#EXTINF:10.000,
2.ts
#EXTINF:10.000,
3.ts
#EXTINF:10.000,
4.ts
#EXTINF:10.000,
5.ts
#EXTINF:10.000,
6.ts
#EXTINF:10.000,
7.ts
#EXTINF:10.000,
8.ts
#EXTINF:10.000,
9.ts
#EXTINF:10.000,
10.ts
...
#EXTINF:10.000,
9549.ts
#EXTINF:4.978,
9550.ts
#EXT-X-ENDLIST

30 分钟是 1800 秒,这意味着您需要每隔 180 个文件关闭第一帧

ffmpeg -i https://d1ymi26ma8va5x.cloudfront.net/ad7df46d01d076a6cab0_ironmouse_44606619692_1644025354/chunked/0.ts \
       -frames:v 1 -q:v 2 OutputFile_00.jpeg

ffmpeg -i https://d1ymi26ma8va5x.cloudfront.net/ad7df46d01d076a6cab0_ironmouse_44606619692_1644025354/chunked/180.m3u8 \
       -frames:v 1 -q:v 2 OutputFile_01.jpeg

...

ffmpeg -i https://d1ymi26ma8va5x.cloudfront.net/ad7df46d01d076a6cab0_ironmouse_44606619692_1644025354/chunked/9540.ts \
       -frames:v 1 -q:v 2 OutputFile_53.jpeg

这样你就不用每次都看.m3u8文件了,不用再找了。