gpt4 book ai didi

android - 如何循环播放 MPEG TS 流

转载 作者:行者123 更新时间:2023-12-04 22:56:18 24 4
gpt4 key购买 nike

我正在寻找一种将 TS 文件作为无限循环 http 流进行流式传输的方法。我试过只是连接文件,但这会导致播放损坏。

我有读取 TS 数据包 header 的基本代码,但我不确定数据包与底层视频流的关系。帧是否与数据包对齐(因此我可以通过重复正确的数据包来循环它)还是我必须完全解复用/重新复用原始 TS 流才能工作?

将托管 http 流的服务将在基于 Amlogic S802 的 Android STB 之一上运行,是否可以通过 Java 通过 Android 版本的 ffmpeg 传输这些数据,或者任何解决方案都必须是纯 Java 的?

最佳答案

TS 文件包含时间戳(PTS 和 DTS),有些播放器确实依赖它们,有些则不依赖。

例如,如果您取 .ts来自 HLS 流的文件并将它们连接起来,它们通常可以正常播放,因为时间戳在 block 中是连续的。

在您的情况下,您可以尝试在 ffmpeg - https://trac.ffmpeg.org/wiki/Concatenate 中使用连接格式或过滤器

您也可以手动解析 TS 数据包,但我建议使用 libav库的解复用器,用于提取视频和音频数据包。

如果你在 Android 上运行,那么你可以看看 Google 的开源播放器实现 TsExtractor - https://github.com/google/ExoPlayer/blob/master/library/src/main/java/com/google/android/exoplayer/hls/parser/TsExtractor.java

关于android - 如何循环播放 MPEG TS 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28562894/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com