【发布时间】:2017-02-23 21:28:55
【问题描述】:
大家好,我的 ffmpeg 行目前看起来像这样
ffmpeg -i "http://x.com/x.ts" -s 810x520 -pix_fmt yuv420p -vcodec copy -acodec copy -bsf:v h264_mp4toannexb -preset baseline -strict -2 -flags -global_header -f segment -segment_list "E:\2.m3u8" -segment_time 10 -segment_list_size 5 "E:\2-%%3d.ts"
它会生成 .ts 文件,例如 1.ts 2.ts 等。
但如果你要查看 twitch.tv 的 m3u8 文件,它看起来像这样
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:3
#ID3-EQUIV-TDTG:2016-10-14T12:33:35
#EXT-X-MEDIA-SEQUENCE:345
#EXT-X-TWITCH-ELAPSED-SYSTEM-SECS:1368.979
#EXT-X-TWITCH-ELAPSED-SECS:1365.240
#EXT-X-TWITCH-TOTAL-SECS:1386.919
#EXTINF:3.440,
index-0000000346-Am9S.ts
#EXTINF:1.720,
index-0000000347-Am3j.ts
#EXTINF:3.980,
index-0000000348-MYfR.ts
#EXTINF:2.000,
index-0000000349-kIwd.ts
#EXTINF:3.300,
index-0000000350-TpwI.ts
#EXTINF:3.500,
index-0000000351-MAjv.ts
我也想这样做有什么例子吗? 谢谢。
最好的问候
【问题讨论】:
-
ffmpeg 无法做到这一点。问题是:你为什么要做那样的事情?
-
也忍不住注意到你的大部分命令行自相矛盾。例如。据说您正在阅读 mpeg-ts 并编写 mpeg-ts 但有一个用于 mp4 到 mpegts 转换的比特流过滤器 - 为什么会存在?有许多选项可以处理视频编码,但实际上并没有发生转码。由于 muxer 指定了此标志,因此不需要 global_header 标志。
-
我希望我的 .ts 文件名不可预测。他们可能会创建自己的 m3u8 文件并仍然播放我的视频
-
好吧,我宁愿不要过多地编辑命令行以免崩溃
-
好吧,你可以用股票 ffmpeg 做的最好的事情是使用
use_localtime选项 - 这将使文件名更难预测。如果你想要一些真正不可预测的东西,你将不得不修改 ffmpeg 或雇人为你做这件事。
标签: video ffmpeg video-streaming html5-video