【问题标题】:mp4 h264 as PES payloadmp4 h264 作为 PES 有效负载
【发布时间】:2016-01-12 11:17:25
【问题描述】:

由于不推荐使用 MediaRecorder 以 TS 格式 (OutputFormat=8) 录制,事实上,它似乎只适用于少数设备,我想录制 MP4/H.264 视频然后通过软件将其转换为.ts文件。我必须使用文件描述符作为输出文件来记录,因为我需要将实时视频发送到本地服务器。
到目前为止,我已经能够以合适的频率生成一个包含适当 SI 表(PAT、PMT)的 .ts 文件(正如我在某处读到的,PAT 每 100 毫秒,PMT 每 400 毫秒),而在此期间这些间隔我实际上用空数据包填充 .ts 文件。现在,我必须用 PESs(Packetized Elementary Streams)替换这些空包。问题是:
MediaRecorder 输出字节已经格式化为 PES 了吗?也就是说,我可以直接将这些字节分成 184 字节的块并将它们用作 TS 数据包有效负载吗?如果不是,我应该对它们进行什么样的“预处理”?使用H264编码和MP4容器是否正确?

【问题讨论】:

  • 嗨 Luigi Renda,我正在努力做同样的事情,如果是的话,你明白了吗,你能在这里发布解决方案吗?谢谢。

标签: android mediarecorder mpeg2-ts


【解决方案1】:

没有。 PES 有一个必须首先写入的标题。您还需要通过编写起始代码和删除 NALLength 将 MP4 NALU 转换为附件 b(除非媒体记录器已经这样做了)。您还必须确保在流中重复 SPS 和 PPS。最后,您必须确保存在 AUD,因为它们在 MP4 中是可选的,但在 ts 中是必需的。

哦,别忘了写 PCR。

【讨论】:

  • 你能再解释一下吗?我不知道SPS、PPS、AUD是什么……你说SPS和PPS必须重复,但是以什么速率?有没有相关指南?
  • 您想要/需要随机访问的任何地方。在每个 iframe 都是一个好的经验法则之前,
猜你喜欢
  • 2021-10-20
  • 1970-01-01
  • 2021-09-13
  • 2020-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-09
相关资源
最近更新 更多