由于不推荐使用TS格式的MediaRecorder录制(OutputFormat = 8),实际上它似乎仅适用于少数设备,我想录制 MP4 / H.264 视频然后通过软件将其转换为 .ts 文件。我必须使用文件描述符作为输出文件进行记录,因为我需要将实时视频发送到本地服务器。到目前为止,我已经能够生成一个.ts文件,其中包含具有合适频率的正确SI表(PAT,PMT)(因为我在某处读取,每隔100毫秒用于PAT,每400毫秒用于PMT)在这些间隔期间,我实际用空包填充.ts文件。现在,我必须用 PES s(Packetized Elementary Streams)替换这些空包。问题是:是MediaRecorder输出字节已经格式化为PES吗?也就是说,我可以直接将这些字节分成184个字节的块并将它们用作TS包的有效载荷吗?如果没有,我应该接受什么样的“预处理”?使用H264编码和MP4容器是否正确?
答案 0 :(得分:0)
没有。 PES有一个必须首先写入的标题。您还需要通过编写起始码并删除NALLength将表格MP4 NALU转换为附件-b(除非媒体记录器已经这样做)。您还必须确保在流中重复SPS和PPS。最后,你必须确保AUD存在,因为它们在MP4中是可选的,但是ts需要。
哦,别忘了写PCR。