【问题标题】:random .ts filenames in the m3u8 filem3u8 文件中的随机 .ts 文件名
【发布时间】: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


【解决方案1】:

这不能直接用 FFMPEG 完成。 Twitch 处理 M3U8 文件并用他们自己的自定义格式重写它。它在最后一段中提到:https://blog.twitch.tv/en/2017/10/10/live-video-transmuxing-transcoding-f-fmpeg-vs-twitch-transcoder-part-i-489c1c125f28/

某些信息需要插入到 HLS 比特流中以 提升玩家端的用户体验。通过构建我们自己的 转码器和播放器,Twitch 可以控制完整的端到端 摄取转码 CDN 播放管道。这允许我们插入 专有元数据结构到转码器输出中,它们是 最终由我们的播放器解析并用于产生独特的效果 到 Twitch。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-02
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    • 2019-10-07
    • 1970-01-01
    • 2016-11-24
    相关资源
    最近更新 更多