16

我有一个 .ts 格式的实时流,包含 AAC 音频和 H.264 视频。我想在 iOS 设备上播放它。我尝试使用基于 FFmpeg 的电影播放器​​来解码和播放视频,但音频滞后。

我可以将此传输流重新包装为 MPEG-4 容器以在 iOS 设备上播放 - 无需将其转换为服务器端吗?

服务器向我返回 .ts 直播流的 URL,我的目标是在没有 .m3u8 播放列表的 iOS 设备上播放此流,因为我无法从服务器获取它。

4

2 回答 2

33

要在不转码的情况下重新复用,您可以使用:ffmpeg -i input.ts -acodec copy -vcodec copy out.mp4

于 2013-07-29T05:09:07.947 回答
3

我用过ffmpeg -i input.ts -acodec copy -vcodec copy out.mp4,转换失败。

然后我使用-bsf:a aac_adtstoasc标志和转换通过,出现“非单调 DTS”错误,导致输出文件中的时间戳不正确。
out.mp4 文件播放良好,但是当我从中提取音频时,音频的长度与视频的长度不同。

如果我使用提取的音频替换原始文件中的音频,则生成的视频文件中的音频不同步(音频滞后)。

然后我将 out.mp4 剪辑导入 DaVinci Resolve 视频编辑器。音频和视频文件的长度显示相同,因此我仅导出音频并获得与原始视频相同的文件大小。

但是,当我在 Audacity 中播放文件并查看音频图时,我注意到许多空白区域(没有声音)。使用 Audacity、ffmpeg、VLC、VSDC 视频编辑器创建的音频文件都提供了与原始视频文件不同大小的音频文件,尽管它们都有声音。

我听说过 projectX to demux a/v,作为一种可能的解决方案。Demux 成功完成,但创建了一个 1KB 的 mp1 文件,有很多错误:“PTS without a frame”。

eac3to 成功从 TS 视频文件中提取 AAC 音频。两个文件大小相同。使用 ffmpeg 替换视频文件中的音频会产生完美的同步,没有滞后或空白的声音。
没有关于“非单调 DTS”或不正确时间戳的错误。

完毕。

于 2018-11-28T16:37:34.910 回答