我正在尝试在Android 4.2.2
上构建一个视频录制系统,我已经完成了编码部分,它使用的是OMX
。现在我正在处理 Muxer 部分,因为如果我使用 FFMpeg
视频的码流可能会有些不同,所以我希望使用与原始系统完全相同的 Muxer 工具。
所以我想提取StagefrightRecorder
的Muxer部分,编译成.so文件,然后在我的应用程序中通过JNI
调用它。但是StagefrightRecorder
里面的东西太多了,我看的一头雾水。
这种方式可行吗?我可以只提取与 MPEG4Writer 相关的代码吗?谁能给我任何指示? 谢谢!
最佳答案
如果您在框架的上下文中进行编译,您可以简单地包含相关的头文件并直接创建 MPEG4Writer
对象。一个很好的例子是命令行实用程序 recordVideo
,可以从 this file 中观察到。 .
如果您希望编写一个单独的应用程序,那么您需要链接到 libstagefright.so
并包含相关的头文件及其路径。
注意:如果您希望使用标准的 MPEG4Writer
,它的源即 MPEG4Writer
的源应该是一个编码器建模为 MediaSource
。编写器通过 read
方法提取 metadata
和实际比特流,因此,建议使用标准内置对象,例如 OMXCodec
或 ACodec
作为编码器。
关于android - 如何从 StagefrightRecorder 中提取 Video Muxer 部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23555646/