【发布时间】:2012-03-20 05:50:30
【问题描述】:
我正在尝试将我们的 mp4 文件转换为 mpeg-ts 并将其分段为 .ts 文件以供我的 iphone 应用程序播放。我正在使用 Carson McDonalds 的 HTTP-Live-Video-Stream-Segmenter-and-Distributor 来做到这一点。
我让他的东西合规并正常工作。我目前正在尝试满足 Apple 的要求,即我需要向我的 m3u8 播放列表提供基线 64 kbps 纯音频流。 卡森似乎没有这方面的个人资料。
我需要能够从 mp4 生成 64kbps 纯音频流,并将其转换为 mpeg-ts,以便将分段器转换为 ts。我正在尝试找到正确的 ffmpeg 命令,该命令将使用 Apple 的 mediastreamvalidator 毫无问题地进行验证。
到目前为止,我修改了一个现有的编码配置文件以尝试达到总共 64kbps:
ffmpeg -er 4 -i %s -f mpegts -acodec libmp3lame -ar 22050 -ab 32k -s 240x180 -vcodec libx264 -b 16k -flags +loop+mv4 -cmp 256 -partitions +parti4x4+partp8x8+partb8x8 - subq 7 -trellis 1 -refs 5 -coder 0 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 64k -maxrate 16k -bufsize 16k -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.6 -qmin 10 - qmax 51 -qdiff 4 -level 30 -aspect 4:3 -r 10 -g 30 -async 2 - | %s %s %s %s %s
但是当我尝试使用 mediastreamvalidator 对其进行验证时,它会在几个 ts 后给出错误:
播放列表验证:OK
细分:
sample_cell_4x3_64k-00001.ts:
警告:媒体片段超过 10.00 秒的目标持续时间 1.30 秒(片段持续时间为 11.30 秒)
sample_cell_4x3_64k-00002.ts:
警告:媒体片段超过 10.00 秒的目标持续时间 1.40 秒(片段持续时间为 11.40 秒)
.... ....
sample_cell_4x3_64k-00006.ts:
错误:(-1) 未知视频编解码器:1836069494(程序 0,轨道 0) 错误:(-1) 未能将分段解析为 MPEG-2 TS 或 ES
sample_cell_4x3_64k-00007.ts:
错误:(-1) 未知视频编解码器:1836069494(程序 0,轨道 0) 错误:(-1) 未能将分段解析为 MPEG-2 TS 或 ES
.... …… 平均段时长:10.26 秒 平均段码率:376797.92 bps 平均段结构开销:349242.17 bps (92.69 %)
有没有什么方法我可以只用总计 64kbps 的音频正确地生成它,并将其转换为准备好被正确分段和验证的 mpeg-ts?
我解决问题的方法对吗?
【问题讨论】:
标签: iphone http streaming ffmpeg mp4