Audio 转换mp2';s到mpeg传输流

Audio 转换mp2';s到mpeg传输流,audio,ffmpeg,codec,mpeg2-ts,mpeg-2,Audio,Ffmpeg,Codec,Mpeg2 Ts,Mpeg 2,此应用程序用于HTTP实时流媒体。(仅限音频) 我有两个连续的10秒mp2文件(它们一个接一个地编码,但如果拼接在一起,则作为一个无缝文件播放)。我想从这些文件创建两个mpeg-2传输流。不幸的是,当我执行以下操作时: ffmpeg -i 0.mp2 0.ts [mp3 @ 0x7fcc2a006600] max_analyze_duration 5000000 reached at 5015510 microseconds [mp3 @ 0x7fcc2a006600] Estimating

此应用程序用于HTTP实时流媒体。(仅限音频)

我有两个连续的10秒mp2文件(它们一个接一个地编码,但如果拼接在一起,则作为一个无缝文件播放)。我想从这些文件创建两个mpeg-2传输流。不幸的是,当我执行以下操作时:

ffmpeg -i 0.mp2 0.ts
[mp3 @ 0x7fcc2a006600] max_analyze_duration 5000000 reached at 5015510 microseconds
[mp3 @ 0x7fcc2a006600] Estimating duration from bitrate, this may be inaccurate
输出成功,但我得到以下结果:

ffmpeg -i 0.mp2 0.ts
[mp3 @ 0x7fcc2a006600] max_analyze_duration 5000000 reached at 5015510 microseconds
[mp3 @ 0x7fcc2a006600] Estimating duration from bitrate, this may be inaccurate
此外,如果我使用0.ts和1.ts创建m3u8清单文件,则两者之间有一个空格

因为我是动态创建播放列表的,所以我不能同时访问这两个文件,否则我只需将文件连接起来,然后在转换后对文件进行分段


我错过了什么?有没有一种不同的方式,我应该编码的mp2的?我使用twolame,一次做10秒。

你不应该自己做分割。通过单独编码段,您无意中重置了连续性计数器,并插入了新的启动样本。这就是暂停的原因

您应该从单个音频文件开始,然后使用ffmpeg进行分段

ffmpeg-i 0.mp2 out.m3u8

更多文档请点击此处:


您可以忽略mp3警告。但是,我强烈建议您对HLS使用AAC。对mp3的支持非常差。

我正在直播录制的音频,我必须每10秒进行一次编码,才能将压缩文件上传到服务器。有没有办法设置连续性计数器?另外,我希望使用MPEG-TS,因为这是Android上唯一一个开箱即用的。否则我很可能会使用AAC。你很困惑。mpegts是容器,AAC是编解码器。您可以将AAC帧放入mpeg ts容器中(在PMT中它是流类型0x0F)。不幸的是,根据这一点,目前android只支持mpeg-2 ts。我误读了吗?有什么办法吗?或者我应该在录制时创建我的mpeg ts文件(即,我可以使用libavformat来创建mpeg ts文件,而不是在设备上使用twolame来生成mp2片段),这样我就不必做任何进一步的处理了?twolame?mpeg2 ts与mpeg音频第二层不同。他们完全不同。mpeg2 ts是容器。mpeg音频第二层是编解码器。我会使用AAC编解码器(最好是硬件编码器),并使用libavformat创建ts段。