mp4parser在Android Studio的设备上运行,但在手动安装APK时崩溃了。
我正在使用mp4parser合并videos.该应用程序从 a.s 运行时运行完美.但是,如果我手动安装应用程序(传输并运行APK),或者如果我从TestFairy运行它,则应用程序崩溃. 当我将Target Sdk更新为Lollipop时,这开始发生. 我添加了 `aspectjrt-1.7.3.jar` `isoparser-1.0-RC-27.jar` 进入我的项目中的libs dir. 我还尝试了以下versions `aspectjrt-1.8.5.jar` `isoparser-1.0-RC-37.jar` `isoparser-1.0.6.jar`. 不确定其是否正确,但它从Android Studio中起作用,然后从TestFairy或TestFairy或Manual install中崩溃. 错误说 com.coremedia.iso.boxes.FileTypeBox缺少 但它在isoparser jar中.
6 2024-02-18
编程技术问答社区
使用mp4parser将h264复用到mp4文件中需要太长的时间。
我正在使用mp4parser将MUX H264文件和AAC文件用于mp4文件.代码为belows. String h264Path = "path to my h264 file, generated by Android MediaCodec"; DataSource videoFile = new FileDataSourceImpl(h264Path); H264TrackImpl h264Track = new H264TrackImpl(videoFile, "eng", 5, 1); // 5fps. you can play with timescale and timetick to get non integer fps, 23.967 is 24000/1001 Movie movie = new Movie(); movie.addTrack(h264Track); Container out = ne
16 2024-02-17
编程技术问答社区
在用Android'的MediaCodec+mp4parser进行编码时,是什么在支配着播放速度?
我正在尝试在Android(使用API​​ 16)上使用MediaCodec和Mp4Parser(封装在.mp4中)上的Android(使用API​​ 16). 除了.mp4的持续时间外,一切都很好,它的持续时间始终为3秒 - 并且以"正确"速度运行. 编码器的输入是84帧(分开100ms). 最后一个帧设置了"流"标志的"结尾". 我在queueInputBuffer 上设置了每个帧的演示时间 我试图调整每个可以想象的参数 - 但似乎没有什么能有所作为 - 这部电影总是长3秒 - 并且总是玩得太快. 那么,是什么控制了播放的渗透?我如何以" natuarl"速度生成电影? 解决方案 我弄清楚了:用MP4Parser封装时(如果您针对API queueInputBuffer的演示时间. 我偶然发现了 this github上的问题,这表明以下是必需的: new H264TrackImpl(new FileDataSourceImpl(raw
4 2024-02-17
编程技术问答社区
安卓MP4Parser无法播放视频
我正在尝试使用这是我合并到.mp4剪辑中的方法,从mp4parser本身取自附录样本. private void createFinalOutputVideo() { CameraHelper helper = new CameraHelper(this); File outFile = helper.getOutputMediaFile(CameraHelper.MEDIA_TYPE_VIDEO); try { Movie[] movies = new Movie[2]; movies[0] = MovieCreator.build(mVideoPath); movies[1] = MovieCreator.build(mOutroPath); Log.d("ShareActivity", "Video 1 path " + mVideoPath); Log
16 2024-02-09
编程技术问答社区
安卓系统中的反转视频
我已经在我的应用程序中录制了一个来自相机的视频,并保存在设备存储中.现在我想扭转视频,以便从向后播放.如果视频为10秒,那么第10秒的最后一帧将成为第一帧,并且它从那里开始播放到第一个秒第一帧.我想将反向视频保存在文件中.我应该如何继续进行操作? 解决方案 感谢Mick给我一个想法,将FFMPEG逆转视频. 我已经在 github 上,以逆转其他视频以及表演其他视频,在我的博客文章中使用FFMPEG和完整教程的视频编辑操作. 我的博客文章中写的, 对于逆转视频,首先我们需要将视频分为 持续时间为10秒或更短,因为反向视频命令 除非您的设备有 32 gb ram. 因此,要扭转视频 - 1.视频为10秒或更短的段落. 2.逆转分段视频 3. concatenate以相反的顺序反向分段视频. 将视频分为6秒的持续时间,我们可以使用 以下命令 - string [] compertycommand = {" -i",inputfil
4 2024-01-31
编程技术问答社区
用Mp4parser旋转视频
我需要旋转视频以调整一些需求.我将在以下列表中解释详细信息. 我正在创建一个像葡萄藤这样的葡萄藤.我必须录制视频段,然后将所有零件合并到一个文件中.我使用MP4 Parser库在Android应用程序上使用Last版本1.0-RC-26使用其网站上提供的示例:如果所有视频都具有相同的方向,则附加视频示例正常工作,但是我发现了一些从前摄像头录制视频的问题,因此快速解决方案是将视频定向录制在270中.此解决方案的不良部分是此方向的细分市场在合并视频上出现错误的方向. 我可能的解决方案是旋转视频以应用我在不同情况下需要的内容,但我没有使用代码的工作示例.搜索互联网,我找到了这样的解决方案在这里.此代码的问题在于与上一个版本不兼容(它给出了汇编错误).我也尝试理解库的逻辑,但没有结果.例如,我在电影对象上使用setMatrix指令进行了实验,但它根本不起作用. public static void mergeVideo(int SegmentNumber) throws Exc
22 2023-11-18
编程技术问答社区
MP4Parser更改视频方向
我试图使用MP4Parser(如果您知道的(如果您知道的)任何其他方法)旋转景观中的视频,目前使用Trackheaderbox,但无法使方向进行更改,那么在此之前有人使用了此功能可以发现我可能犯的错误吗?任何帮助将走很长一段路,谢谢 IsoFile out = new DefaultMp4Builder().build(result); // test double[] m = null; m = new double[] { 0.0, 1.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0, 1.0 }; TrackBox tb = out.getMovieBox().getBoxes(TrackBox.class).get(0); TrackHeaderBox box = tb.getTrackHeaderBox(); box.setMatrix(m); 解决
14 2023-11-18
编程技术问答社区
用java编辑mp4标签
我想在Java中编辑MP4视频文件的标签. 我在Google代码上找到了MP4Parser,但没有足够的文档. 在Java中编辑MP4视频标签的最佳LIB是什么? MP4视频中是否有任何评论标签的限制? 解决方案 因此,通过标签,您的意思是标题,艺术家,专辑等等?在这种情况下,您可以尝试JCODEC中可用的新API(). 这是基本用法: # Changes the author of the movie ./metaedit -f -si ©ART=New\ value file.mov 或通过Java API的同一件事: MetadataEditor mediaMeta = MetadataEditor.createFrom(new File("file.mp4")); Map meta = mediaMeta.getItunesMeta(); meta.put(0xa9415254, MetaValue.c
28 2023-10-14
编程技术问答社区
如何使用mp4parser合并前后摄像头交替拍摄的mp4视频?
我正在开发一个使用MP4PARSER合并视频的应用程序.要合并的视频都在前置摄像头和后摄像头中拍摄.如果我将这些视频合并为单个,则可以将所有视频融合在一起,但是通过前置摄像头拍摄的替代视频被合并为倒置. 我能做些什么. 请任何人帮助我. 这是我合并视频的代码: try { String f1,f2,f3; f1 = Environment.getExternalStorageDirectory() + "/DCIM/testvideo1.mp4";// video took via back camera f2 = Environment.getExternalStorageDirectory() + "/DCIM/testvideo2.mp4";// video took via front camera f3 = Environment.getExternalStorageDirectory() + "/DCIM/testvideo3.mp4";// vi
20 2023-08-12
编程技术问答社区
Java mp4parser输出为空
此用例是一项服务,它可以手动编码一系列未压缩的.WAV媒体段,以通过MPEG-DASH广播,使用FFMPEG将.WAV压缩为.aac和sannies/mp4parser,以集中AAC AC AC AUDIO AUDIO进入.m4s媒体片段. 我创建了例如,这是自定义 使用MP4框的第一个示例可行,只要我能够生成初始化的MP4 +系列片段M4S 然后可以将可以连接的文件形成可播放的MPEG4流. 注意:对于此用例,每个媒体段都是从单独生成的源段编码的,而不是使用MP4Box之类的工具来从连续音频源进行流式传输. 尝试通过MP4Parser手动构建媒体段的尝试仍在整体上失败,,因为 my ChunkFragmentM4sBuilder.java 下面使用的畸形. 但是我很难理解 如何完全畸形. 对我有帮助 一面, mp4boxtestes.log.txtt . 通过Java Mp4Parser(畸形) 前 >日志是 from ChunkFragment
36 2023-06-08
编程技术问答社区
Java mp4parser片段序列的不连续性
此用例是一项服务,它可以手动编码一系列未压缩的.WAV媒体段,以通过MPEG-DASH广播,使用FFMPEG将.WAV压缩为.aac和sannies/mp4parser,以集中AAC AC AC AUDIO AUDIO进入.m4s媒体片段. 我创建了例如,这是自定义 这个日志是 from ChunkFragmentM4sBuilderTest.java 导致 连接的测试输出 test-java-mp4parser.mp4 确定: 但是,当我使用VLC播放已发货的播放列表和片段时,我在日志中看到了这些失败: mp4: Fragment sequence discontinuity detected 163497124 != 0 当VLC播放以下破折号播放列表时,会发生此错误: test5-128K-163497126.m4s test5-128k-is.mp4 这是我的自定义片段构建器类的最新实现和其他注释: Files.deleteIfExis
22 2023-06-06
编程技术问答社区
Java mp4parser创建一个单一的.m4s片段-无效的moov盒子
此用例是一种手动编码一系列未压缩的.wav媒体段中的服务,以 .m4s 片段通过 mpeg-dash ,使用 sannies/mp4parser 将AAC音频组装到 .m4s 媒体上. 我创建了例如,这是自定义 customfragmentmp4builder.java class. 至关重要的是,我们能够用序列编号(索引)指定这个单个.m4s片段我们将为每个媒体段手动增加. 目的是构建一个 .m4s 片段,该片段包含盒子类型SegmentTypeBox,SegmentIndexBox和MovieFragmentBox.至于参考,我已经使用 mp4parser 检查了通过ffmpeg -f hls生成的 .m4s 片段.该规范可用在这里作为.yaml文件 我的实现创建了MP4没有错误.但是,当单元测试试图读取Chunkmp4Builder刚写入temp文件夹的文件时: java.lang.RuntimeException: A cast to int has
52 2023-04-20
编程技术问答社区
Mp4Parser的音频视频合并输出不能在所有设备上播放
在我的Android应用程序中,我正在分别下载Facebook视频和音频,然后将其合并到输出文件中.原因是Facebook视频URL没有声音,音频URL是独立的. 我尝试使用此 我遵循的步骤 以MP4格式下载无声视频. 以M4A格式下载音频. 合并两个文件并使用MP4格式创建输出文件. 合并完成后,没有声音视频和临时音频. 以下是我的代码 依赖项 implementation 'com.iceteck.silicompressorr:silicompressor:2.2.4' implementation('com.googlecode.mp4parser:isoparser:1.0.6') { exclude group: 'org.aspectj', module: 'aspectjrt' } 合并代码 private fun mergeAudioAndVideo( id: Int,
28 2023-04-02
编程技术问答社区
如何使用mp4parser向mp4文件写入元数据?
我正在使用MP4Parser到MUX H264和AAC文件,并从Oginal Video File重新编码,如何将原始视频的元数据写入新的MP4文件?还是有一种将元数据写入MP4文件的常见方法? 解决方案 元数据和MP4是一个真正的问题.没有一般支持的规范.但这只是问题的一部分. prob(1):何时写元数据 概率(2):写什么 prob(1)相对容易解决:只需自行扩展defaultmp4builder或fragmentedmp4 -builder,然后覆盖 protected ParsableBox createUdta(Movie movie) { return null; } 有意义的东西.例如: protected ParsableBox createUdta(Movie movie) { UserDataBox udta = new UserDataBox(); CopyrightBox copyrightBox =
122 2023-04-02
编程技术问答社区
使用mp4parser,我如何处理从Uri和ContentResolver获取的视频?
背景 我们想让用户从任何应用程序中选择一个视频,然后将视频最大为5秒. . 问题 为了选择URI,我们可以很好地工作(解决方案 >). 至于修剪本身,我们找不到任何具有允许许可证的好库,除了一个称为可悲的是,这个库(k4l-video-trimmer)很旧,并且在几年中没有更新,所以我不得不分叉(在这里)为了很好地处理它.它使用一个名为 " mp4parser" 进行修剪的开放库库./p> Problem is, this library seems to be able to handle files only, and not a Uri or InputStream, so even the sample can crash when selecting items that aren't reachable like a normal file, or even have无法处理的路径.我知道在许多情况下,可能有可能获得文件的路径,但是在许多其他情况下,事
58 2022-11-27
编程技术问答社区
使用同一库的不同版本-发现一个以上的文件与操作系统无关的路径'buildddef.lst'。
问题 我试图使用两个库来修剪和压缩视频: silicompressor 和 k4l-video-trimmer . 问题是两个库都使用 mp4parser ,但它的不同版本. K4L-VIDEO-TRIMMER使用1.1.20版作为build.gradle和Silicompressor的依赖项,将版本1.0.6用作JAR文件. 现在,该项目构建正常,但是当我尝试运行它时,我会收到错误: 在OS独立路径'builddef.lst' 的情况下发现了多个文件 我已经尝试过的东西 排除包装选项中的builddef.lst 我在应用程序级别build.gradle中添加了这些行: android { packagingOptions { exclude 'builddef.lst' exclude 'version.txt' exclude 'isoparser-default.properties'
56 2022-10-25
编程技术问答社区
使用halfninja ffmpeg在Android中串联mp4文件
我可以使用NDK版本R5C进行编译,以编译 Halfninja ffmpeg脚本适用于Android NDK. (不幸的是,任何尝试与早期的NDK生成一些错误),我也没有非常了解整个NDK过程,所以这对我来说有点击中了. 他的脚本正在编译ffmpeg版本n-30996-gf925b24(他做了脚本的特定提交) 向前移动到我的实际应用程序. 我设法在没有问题的情况下修剪视频,现在我需要加入/连接它们,但在那些3个链接中找到的命令的任何Attemp( link1 , link2 , link3 )生成错误作为cat is not valid,> is undefinined,unknown option filter_complex或试图覆盖一些输入文件. 是否有人知道它是否有可能并且(如何执行此操作),加入/连接MP4视频(所有相同的编解码器,大小,质量等)使用FFMPEG的半忍者编译在Android上,或者如何编译/获取使用最新的源代码为Android的FFMPEG?
524 2022-07-19
编程技术问答社区
MP4Parser Nullpointer 异常
我面临着追加音频的问题,我录制了 Android.Media.Mediarecorder.MediareCorder() 对于我使用相机意图采用的视频. 基本上,当我尝试这样做时: Movie s = MovieCreator.build(audioPath); 我得到一个例外: 12-05 22:04:30.775: E/AndroidRuntime(4191): java.lang.NullPointerException 12-05 22:04:30.775: E/AndroidRuntime(4191): at com.googlecode.mp4parser.authoring.container.mp4.MovieCreator.build(MovieCreator.java:48) 在这种情况下的路径是: video: /mnt/sdcard/DCIM/Camera/merged_20131205_221045.3gp audio: /mnt
1278 2022-07-19
编程技术问答社区
如果我在mp4parser中合并了更多的视频,音频和视频不能正常同步
我已经使用MP4Parser使用MP4Parser进行动态暂停的视频,并为最多6秒录制记录视频捕获.在预览其工作正常时,当录制视频时,使用最小暂停/记录,如果我尝试过超过3个暂停/记录,则意味着最后一个视频文件未与Audio正确合并.该视频的开始,同步是可以的,但最后视频悬挂和音频在屏幕上播放,剩余文件持续时间约1sec. 我的录音经理 public class RecordingManager implements Camera.ErrorCallback, MediaRecorder.OnErrorListener, MediaRecorder.OnInfoListener { private static final String TAG = RecordingManager.class.getSimpleName(); private static final int FOCUS_AREA_RADIUS = 32; private stati
1818 2022-07-19
编程技术问答社区
在Android上使用mp4parser合并Mp4s
我只是想知道有人知道如何拍摄MP4音频文件并在Android上使用mp4parser覆盖在MP4视频文件上.我已经能够与另一个一起将一个视频附加,现在我只需要覆盖我在组合文件上的原始mp4. 任何帮助都将被欣赏! 解决方案 以下代码muxes两个音频语言和视频.应该容易地采用您的需求: public static void main(String[] args) throws IOException { String audioDeutsch = MuxMp4SourcesExample.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/count-deutsch-audio.mp4"; String audioEnglish = MuxMp4SourcesExample.class.getProtectionDomain().getCodeSource()
1470 2022-07-19
编程技术问答社区