gpt4 book ai didi

android - FFmpeg 相机编码 h264 mp4 muxing atom avcC 太小

转载 作者:行者123 更新时间:2023-11-29 19:49:09 29 4
gpt4 key购买 nike

我尝试将 Android 相机预览帧编码为 h264,并复用到 mp4 容器。

我可以成功创建 mp4 文件。但是 mp4 格式似乎已损坏。

使用ffprobe,我得到了以下错误。

$ ffprobe o.mp4
[h264 @ 0x209fe50] non-existing PPS 0 referenced
[h264 @ 0x209fe50] decode_slice_header error
[h264 @ 0x209fe50] no frame!
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x209ea60] decoding for stream 0 failed
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x209ea60] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none, 568x320, 505 kb/s): unspecified pixel format

然后我使用mp4info工具查看信息是否正确。我找到了这个。

$ mp4info o.mp4 
mp4info version 2.0.0
o.mp4:
ReadProperties: atom 'avcC' is too small; overrun at property: configurationVersion (src/mp4atom.cpp,386)
mp4info: can't open o.mp4

通过hexdump文件的内容,我得到了这个

$ xxd o.mp4 |grep -A 5 -B 5 avcC
0039170: 6331 0000 0000 0000 0001 0000 0000 0000 c1..............
0039180: 0000 0000 0000 0000 0000 0238 0140 0048 ...........8.@.H
0039190: 0000 0048 0000 0000 0000 0001 0000 0000 ...H............
00391a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00391b0: 0000 0000 0000 0000 0000 0000 0018 ffff ................
00391c0: 0000 0008 6176 6343 0000 0020 7374 7473 ....avcC... stts
00391d0: 0000 0000 0000 0002 0000 004f 0000 0ea6 ...........O....
00391e0: 0000 0001 0000 0000 0000 0058 7374 7373 ...........Xstss
00391f0: 0000 0000 0000 0012 0000 0001 0000 0005 ................
0039200: 0000 000a 0000 000f 0000 0014 0000 0019 ................
0039210: 0000 001e 0000 0023 0000 0028 0000 0029 .......#...(...)

如果我没有将全局 header 添加到 AVCodecContext

if (ofmt_ctx->oformat->flags & AVFMT_GLOBALHEADER) {
// oc_ctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
}

ffprobe可以检测格式无误,ffplay也可以播放。但是 avcC 原子仍然不正确。其他玩家不能玩。

为什么 muxer 没有写入正确的 avcC 原子?

我该如何解决?

最佳答案

您必须在编解码器上下文中设置额外数据字段。此处引用了格式:Possible Locations for Sequence/Picture Parameter Set(s) for H.264 Stream

关于android - FFmpeg 相机编码 h264 mp4 muxing atom avcC 太小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37278681/

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