当前位置: 首页 > 知识库问答 >
问题:

MediaMuxer HEVC“无编解码器配置”

澹台浩广
2023-03-14

试图将HEVC编码的视频多路复用到三星Galaxy S6上的MediaMuxer MPEG-4容器中。

MediaFormat(从MediaCodec获得):

{height=1080, width=1920, max_capacity=8847360, what=1869968451, mime=video/hevc, csd-0=java.nio.ByteArrayBuffer[position=0,limit=76,capacity=76], remained_resource=6773760}

根据文档中的表格,csd-0出现在那里,对于H265/hevc来说就足够了

MediaMuxer基于此格式创建索引为0的视频曲目。在编写一些示例,然后调用mediaMuxer之后。stop(),将引发非法状态异常,并在logcat中显示以下内容:

E/MPEG4Writer: Missing codec specific data
D/MPEG4Writer: Video track stopping
D/MPEG4Writer: Video track source stopping
D/MPEG4Writer: Video track source stopped
I/MPEG4Writer: Received total/0-length (247/0) buffers and encoded 247 frames. - Audio
I/MPEG4Writer: Audio track drift time: 0 us
I/MPEG4Writer: Received total/0-length (173/0) buffers and encoded 173 frames. - Video
D/MPEG4Writer: Video track stopped
D/MPEG4Writer: Audio track stopping
D/MPEG4Writer: Audio track source stopping
D/MPEG4Writer: Audio track source stopped
D/MPEG4Writer: Audio track stopped
D/MPEG4Writer: Duration from tracks range is [5744606, 5764430] us
D/MPEG4Writer: Stopping writer thread
D/MPEG4Writer: 0 chunks are written in the last batch
D/MPEG4Writer: Writer thread stopped
E/MP4FileMuxer: finish: stop or release failed
java.lang.IllegalStateException: Failed to stop the muxer

生成的MP4文件无法打印。有什么问题吗?

共有1个答案

逄嘉木
2023-03-14

所以,回答我自己的问题:似乎只有从Android 7.0 r1开始的MediaMuxer才支持“video/hevc”(即使使用N-preview-5也不起作用)。看起来像MediaMuxer的文档。addTrack()已更新以反映这一点。

相关AOSP代码:

MPEG4Writer.cppN预览5-无HEVC支持

MPEG4Writer。N r1上的cpp-到处都是HEVC碎片

不幸的是,有些带有Marshmallow的设备支持HEVC视频编码(例如三星Exynos),但使用MediaMuxer将其转储到MP4文件中是行不通的,因此需要定制解决方案。

 类似资料:
  • 问题内容: 当上传具有非ASCII字符的文件时,出现UnicodeEncodeError: 我使用MySQL,nginx和FastCGI运行Django 1.2。 根据Django Trac数据库,这是已解决的问题,但是我仍然有问题。欢迎提供有关如何修复的任何建议。 编辑:这是我的图像字段: 问题答案: 在对此进行更多调查之后,我发现我尚未在我的主要Nginx配置文件中设置字符集: 通过添加以上内

  • 问题内容: 我正在尝试抓取一个网站,但这给我一个错误。 我正在使用以下代码: 我收到以下错误: 我该怎么做才能解决此问题? 问题答案: 我通过添加将其修复。 那意味着变成。

  • 问题内容: 当我尝试在数据库中插入外来字符时,可能是什么导致此错误? 而我该如何解决呢? 谢谢! 问题答案: 字符U + 201C左双引号在Latin-1(ISO-8859-1)编码中不存在。 这 是 目前在代码页1252(西欧)。这是Windows特定的编码,基于ISO-8859-1,但会将多余的字符放入0x80-0x9F范围内。代码页1252通常与ISO-8859-1混淆,这是一种令人烦恼但现

  • 我们已经在前两节中表征并变换了不定长的输入序列。但在自然语言处理的很多应用中,输入和输出都可以是不定长序列。以机器翻译为例,输入可以是一段不定长的英语文本序列,输出可以是一段不定长的法语文本序列,例如 英语输入:“They”、“are”、“watching”、“.” 法语输出:“Ils”、“regardent”、“.” 当输入和输出都是不定长序列时,我们可以使用编码器—解码器(encoder-de

  • 问题内容: 我有一个套接字服务器,应该从客户端接收UTF-8有效字符。 问题是某些客户端(主要是黑客)正在通过它发送所有错误的数据。 我可以轻松地区分真正的客户端,但是我会将所有发送的数据记录到文件中,以便以后进行分析。 有时我会得到这样的导致错误的字符。 我需要能够使带有或不带有这些字符的字符串UTF-8。 更新: 对于我的特殊情况,套接字服务是MTA,因此我只希望接收ASCII命令,例如: 我

  • 问题内容: 我试图在Python熊猫中做一些数据工作,但写出我的结果时遇到麻烦。我将数据读取为CSV文件,并一直将每个脚本导出为自己的CSV文件,效果很好。最近,尽管我尝试使用工作表将所有内容导出到1个Excel文件中,但其中一些工作表给我一个错误 “’utf8’编解码器无法解码位置1的字节0xe9:无效的继续字节” 我什至不知道如何开始寻找任何可能导致导出到Excel的问题的字符。不知道为什么导