gpt4 book ai didi

java - 在android中创建一个webm文件

转载 作者:行者123 更新时间:2023-11-29 21:05:15 24 4
gpt4 key购买 nike

我正在尝试使用 Android 的 MediaCodec API 在 android 中创建一个 webm 文件。我使用 MediaCodec.createEncoderByType("video/x-vnd.on2.vp8") 创建了一个 VP8 编码器,如此 CTS 测试所示:https://android.googlesource.com/platform/cts/+/jb-mr2-release/tests/tests/media/src/android/media/cts/Vp8EncoderTest.java

我正在将输入从 Surface 传递到编码器。

我正在使用这个类 IvfWriter :https://android.googlesource.com/platform/cts/+/jb-mr2-release/tests/tests/media/src/android/media/cts/IvfWriter.java将文件写入SD卡。

但是在写入之后,我既不能在 MxPlayer (Android) 中播放该文件,也不能在我的桌面上使用 VLC/Firefox 播放该文件。 Firefox 报告文件已损坏。

这是创建的文件:https://www.dropbox.com/s/dwk42m9qz2mlagv/derp.webm

如果有人能告诉我调试视频的方法就太好了。

最佳答案

您创建的“webm”文件不是 webm 文件 - 它是 ivf 文件(这是一种更简单的格式,主要用于包含用于测试的 VPx 编解码器数据),而 firefox 不支持该格式.不过 VLC 确实支持它。

但是对于视频本身——文件中每个视频数据包中的每个字节都是 0,所以你从代码中调用 IvfWriter 类的方式似乎出了问题——没有看到更多的代码,很难说出什么是错误的错误的。尽管数据包确实有不同的长度,所以只是个别数据包的内容出了问题。

要自己进行此类调试,您可以使用 avconv(或 ffmpeg)工具,例如像这样: avconv -loglevel debug -dump -hex -i derp.webm -f null - 这将向您显示每个数据包的元数据(大小、时间戳、标志),以及负载内容本身。

关于java - 在android中创建一个webm文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24801805/

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