问题标签 [mediamuxer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 尝试通过 JNI 调用 MPEG4Writer.o 时演示崩溃
我正在 JellyBean(Android4.2.2) 上构建我的应用演示,演示的一个模块是将 h264 流写入 mp4 文件。由于 MPEG4Writer 在源代码中完成了这项工作,所以我尝试通过 JNI 调用它。
编译源代码后,我得到了 MPEG4Writer.o 文件。在我的第一步中,我只想尝试这种方式是否可行。所以我写了 JNI 文件,这很容易,只需创建一个 MPEG4Writer 类的新实例:
和 Android.mk 文件:
然后我在Java中调用该函数:
当我构建项目时它是好的,但是当我运行它时它就关闭了。日志是:
我真的不知道。如果这种使用 MPEG4Writer 的方式可行吗?有人有什么主意吗?谢谢!
android - Android 测试项目 bigflake
我正在尝试运行BigFlake Android samples中的示例代码,特别是这个示例:CameraToMpegTest。我是 Android 开发的新手,我不确定我应该如何对待这个测试套件。我尝试在 Eclipse 中创建一个 Android 测试项目,但它没有运行。网上的例子好像是从一个特定的应用项目创建一个Android Test Project。有人尝试运行这些代码并可以给我一些提示吗?
android - 使用 android 的 MediaMuxer 连接多个 mp4 音频文件
我正在尝试使用以下函数将多个 mp4 音频文件(每个仅包含一个音轨,全部使用相同的 MediaRecorder 和相同的参数录制)连接成一个:
代码编译并运行,但是在播放结果文件时,我只听到第一个文件的内容。我没有看到我做错了什么。
然而,在 Marlon 向我指出那个方向之后,我从 MediaMuxer 收到的消息有些奇怪。他们来了:
似乎从第一个文件复制数据后,MPEG4Writer(为什么不是 MediaMuxer?)停止轨道并且不写入更多数据。我怎样才能防止这种情况?我是否必须直接操作标题,如果是,如何操作?
任何帮助,将不胜感激。
此致,
基督教
android - 如何从 StagefrightRecorder 中提取 Video Muxer 部分?
我正在尝试构建一个视频录制系统Android 4.2.2
,我已经完成了编码部分,它正在使用OMX
. 现在我正在研究 Muxer 部分,因为如果我使用 ,视频的码流可能会有些不同FFMpeg
,所以我希望使用与原始系统完全相同的 Muxer 工具。所以我想提取 Muxer 的部分StagefrightRecorder
,将其编译成 .so 文件,然后JNI
在我的应用程序中调用它。但是里面有很多东西StagefrightRecorder
,我很困惑。
这种方式能行吗?我可以只提取与 MPEG4Writer 相关的代码吗?谁能给我任何指示?谢谢!
android - Android MediaCodec 丢帧
我正在通过 和 进行实时OpenGL
视频MediaCodec
处理MediaMuxer
。
输出视频似乎丢帧。视频似乎以 1 或 2 FPS 的速度运行,即使应用程序以 15 FPS 的速度运行。我已经调试了编码器的输出,没有丢帧。到底是怎么回事?
我在下面添加了核心代码。
驱动它的代码如下:
android - 带有 openGL 的 Android MediaMuxer
我正在尝试使用MediaMuxer
. 这Grafika
例子是一个很好的努力,但是当我尝试扩展它时,我遇到了一些问题。
我正在尝试在电影中绘制一些基本形状,例如正方形、三角形、线条。如果我将形状绘制到屏幕上,我的 openGL 代码运行良好,但我无法将相同的形状绘制到视频中。
我也有关于设置 openGL 矩阵、程序、着色器和视口的问题。通常,有类似的方法onSurfaceCreated
,onSurfaceChanged
以便我可以设置这些东西。最好的方法是什么GeneratedMovie
?
任何人都有写入具有更复杂形状的视频的示例将受到欢迎
android - MediaMuxer 连续捕获
我正在尝试示例Grafika。我对将ContinuousCapture
视频记录到文件系统并同时将其绘制到屏幕上的示例感兴趣。我遇到的问题是将视频录制到文件系统似乎很慢。丢帧很多,每秒帧数只有7-10fps。
在 maindrawFrame()
方法内部,
主要的性能瓶颈似乎是
两个日志之间的时间为 130 毫秒。Android MediaRecorder 可以以 30fps 的高质量视频完成这项工作。我试图禁用显示部分,但没有任何区别
android - 使用 MediaMuxer 创建的非流式视频文件
我MediaCodec
用来编码视频。帧通过相机预览回调传到MediaCodec
实例(不使用 Surface)。我正在使用JCodec库进行复用,并且能够流式传输制作的视频(视频播放器显示正确的持续时间,并且我能够使用搜索栏更改视频位置)。
今天我尝试使用MediaMuxer
而不是,JCodec
我得到的视频看起来仍然很好,但是持续时间绝对不正确(几个小时而不是一分钟)并且搜索栏根本不起作用。
当我收到以下代码时,会延迟调用以下代码MediaCodec.INFO_OUTPUT_FORMAT_CHANGED
:
我正在使用以下代码对帧进行编码:
byteBuffer
并且bufferInfo
直接来自MediaCodec
一些定位的东西:
演示时间设置正确:
在记录的最后,我做了:
日志:
我猜The mp4 file will not be streamable.
关于问题的信号。
更新:
我已经在另一台设备(LG G2)上测试了我的应用程序,该设备执行更详细的日志记录。同一文件的生成时间很长。日志在这里,视频文件在这里。
android - 使用 MediaCodec 和 MediaMuxer 编码和混合视频
我正在开发一个应用程序,我在其中解码视频并替换某些帧并使用和重新MediaMuxer
编码MediaCodec
。如果我不替换任何帧(我在下面解释的 1080p 视频除外),该应用程序就可以工作,但是当我这样做时,替换后的帧会被像素化并且视频不连贯。
此外,当我尝试使用 1920x1080 视频的应用程序时,我得到一个奇怪的输出,视频没有显示任何内容,直到我滚动到视频的开头,然后视频开始显示(但与之前提到的相同问题编辑后的像素化。
这是我配置编码器的方式:
所以总结一下,我有两个问题:
1- 修改帧后的像素化帧和断断续续的视频。
2- 损坏的 1920x1080 视频,除非我滚动到开头。
编辑
这是一个未经编辑的1080p示例视频,当我在 VLC 上播放时会出现绿屏,并且在手机上播放不正确,除非我滚动开始,现在奇怪地在 YouTube 上正常工作,除了开始时的绿框
这是一个示例720p 视频,在开始时也有一个绿框,并且在编辑后有清晰的像素化和滞后
这是我用来解码重新编码的代码:
解码方法:
这是编码方法:
android - MediaMuxer 无法制作可流式传输的 MP4
我正在使用 MediaExtractor 在 Android 上编辑 MP4 以获取音频和视频轨道,然后使用 MediaMuxer 创建一个新文件。它工作正常。我可以在手机(和其他播放器)上播放新的 MP4,但无法在网络上流式传输文件。当我停止 MediaMuxer 时,它会生成一条日志消息
“mp4 文件将无法流式传输。”
我查看了底层的本机代码(MPEG4Writer.cpp),似乎作者在计算所需的 moov 框大小时遇到了问题。如果比特率没有作为参数提供给编写器,它会尝试使用一些启发式猜测。问题是 MediaMuxer 不提供设置 MPEG4Writer 参数的能力。我是否遗漏了某些东西,或者我是否一直在寻找其他生成文件(或标题)的方法?谢谢。