问题标签 [mediaextractor]
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 - Android使用mediamuxer mediacodec和mediaextractor合并mp4和aac文件(没有mp4parser)
我正在录制音频,然后尝试合并 aac 音频和 mp4 视频文件(静音,无音频),并共享合并的 mp4 文件。合并后的mp4文件共享在三星J2和小米都可以,但是在联想、Micromax等手机上不能播放mp4文件。这里提到了测试结果: https ://docs.google.com/spreadsheets/d/1eeJEM- v-smEUzY-bSxwIwFVOsAbv6KT2u3Kz3jdOb8o/edit?usp=sharing 我无法理解问题是由于共享还是由于不正确的复用以及问题的原因。请帮忙。
共享代码存在于 recordAudio.java 中,是这样的:
复用代码:
android - 如何识别大视频文件中歌曲的开头
我正在寻找一种方法来标记视频文件中歌曲的开头和结尾。
我现在的目标是低于视频格式。1) 3GPP (.3gp) 2) MPEG-4 (.mp4)
我参考了文章http://bigflake.com/mediacodec/和Android Extract Decode Encode Mux Audio并且能够获得提取解复用的编码音频数据的想法,但是我不确定如何识别音乐的开头(非正常音频)在此音频文件中。
目标操作系统是 Marshmallow。
请建议是否可行,我正在寻找的答案可能需要音频信号处理,除非有更简单的方法。
android - 在 Android 上以编程方式获取 MPEG-4 视频流的配置文件
有没有办法使用标准 Android API获取 MPEG-4 视频文件的配置文件代码?
示例配置文件代码是:baseline
、main
等high
。
我不想ffmpeg
在 android 应用程序中包含二进制文件只是为了获取这些信息。
我在MediaCodecInfo.CodecProfileLevel类中找到了配置文件列表的参考。任何机构都可以确认这是否是我应该使用的吗?
这是从MX Player应用程序 获取的视频信息的示例屏幕截图
- 更新#1:我查看了 MX Player 应用程序,看起来他们使用
ffmpeg
二进制文件,所以我可以肯定地说他们使用它来提取profile-code
. - 更新#2:我还研究了ExoPlayer v1 API,他们似乎也没有特定的 API 来获取此信息。
android - 在 android (mediaCodec/extractor) 中修剪 aac-mp4 音频
我想修剪现有的 aac-mp4 音频文件。我第一次想“修剪” 0 字节,基本上只是为了使用 MediaCodec/MediaExtractor 复制文件。
问题:
- 标题是固定大小的,我可以从旧文件中复制它吗?或者它有一些关于轨道持续时间的信息,我需要更新它?如果它有固定的大小(为了知道我应该从旧文件复制多少字节)?
- 我应该只使用提取器的 getSampleData(ByteBuffer, offset) 和 Advance() 还是应该使用 MediaCodec 并提取样本(解码),然后用编码器再次对其进行编码 - 并写入编码值?
android - 解复用音频和视频
我想从视频文件中解复用音频和视频。有没有办法在不使用任何 3rd 方库(如 FFMEPG)的情况下做到这一点。在我在堆栈溢出中看到的所有问题和答案中,都推荐使用 FFMPEG。但我想在不使用它的情况下做到这一点。任何解决方案表示赞赏。谢谢你。
android - 使用 MediaCodec 和 MediaExtractor 播放视频和音频
我正在尝试使用 MediaCodec 播放视频。视频正在播放但音频静音。我想取消音频静音。经过研究我发现我们需要分别解码音频和视频。我想只使用一个Mediacodec和MediaExtractor对象来播放视频和音频。如何这可以实现吗?我使用以下代码播放视频。
android - 如何在不使用 ffpeg Android 的情况下在视频中添加文本?
我正在使用 MediaMuxer 和 MediaExtractor 对视频进行转码。现在我想在视频的某个位置添加文字。我怎样才能做到这一点?基本上我正在录制视频并以较低的分辨率对其进行转码,现在我想在不使用 ffmpeg 的情况下添加文本覆盖。我尝试使用 ffmpeg 添加水印,但它需要太多时间。我正在使用这个库。这是我的命令:
android - Android:使用 MediaExtractor 和 MediaCodec 获取当前位置
我正在使用 MediaCode、MediaExtractor 和 AudioTrack 创建自己的媒体播放器实现。我需要对从本地存储的音频文件中读取的解码 mp3 样本进行失真处理,因此需要自定义实现。出于这个原因,我需要实现我自己的seekTo
和getCurrentPosition
功能。但是,我不确定我将如何实施后者。
我可以设置一个监听器在播放时增加位置,但这听起来是个糟糕的主意,而且可能不准确。最好的方法是什么?我希望支持 API 级别 16 或更高级别。
java - 从 mp4 中提取音轨并将其保存到可播放的音频文件中
以下代码是我的工作,它可以提取音轨并将其保存到 android 中的文件中。但是,我不知道如何将音轨编码为可播放的音频文件(例如,.m4a 或 .aac)。另外我还读取了音轨的格式信息 {mime=audio/mp4a-latm, aac-profile=2, channel-count=2, track-id=2, profile=2, max-input-size= 610,durationUs=183600181,csd-0=java.nio.HeapByteBuffer[pos=0 lim=2 cap=2],采样率=44100}。
android - MediaExtractor 不理解音频/aacp 流
我有我自己的MediaDataSource
:
当我尝试播放MP3
流时(例如A.0.0.00Radio):
我看到以下内容Logcat trace
:
似乎一切正常(流实际上是通过设备播放的)。
但是,如果我尝试打开AAC
流(例如COOLfahrenheit 93):
MediaExtractor
疯了: