[我在stackoverflow上找到了以下链接,但它不符合我的要求。我试图通过向用户展示自定义图库来附加视频,其中显示存储在SD卡中的所有视频,并且用户必须选择任意数量的视频,最后在按下追加按钮视频后合并/追加,它在许多工作正常但是在某些情况下它无法理解这个错误以及如何解决它。上面的链接用于setVideoCodec,用于从应用程序本身记录的视频,我没有这样做。如何更改已经可用的mp4视频的视频编码?
这是我在追加时得到的日志错误。我还打印了示例框描述条目以获取帮助,但无济于事,我可以看到示例框描述条目相同且没有Isoparser的文档图书馆可以帮助我。我使用isoparser-1.0-RC-2.jar
和aspectjrt-1.8.0.jar
作为最新的isoparser库并不适合我:-(
java-io-ioexception-cannot-append-mp4trackimplhandler-vide-to-mp4trackimpl
09-03 11:53:43.390: I/MERGE_VIDEO_ACTIVITY(28345): SampleDescriptionBox[AudioSampleEntry]
09-03 11:53:43.390: I/MERGE_VIDEO_ACTIVITY(28345): SampleDescriptionBox[com.coremedia.iso.boxes.sampleentry.VisualSampleEntry@42118240]
09-03 11:53:43.390: I/MERGE_VIDEO_ACTIVITY(28345): SampleDescriptionBox[AudioSampleEntry]
09-03 11:53:43.390: I/MERGE_VIDEO_ACTIVITY(28345): SampleDescriptionBox[com.coremedia.iso.boxes.sampleentry.VisualSampleEntry@41f08c60]
09-03 11:53:43.400: W/System.err(28345): java.io.IOException: Cannot append com.googlecode.mp4parser.authoring.Mp4TrackImpl@42008d78 to com.googlecode.mp4parser.authoring.Mp4TrackImpl@41ef5d90 since their Sample Description Boxes differ
09-03 11:53:43.400: W/System.err(28345): at com.googlecode.mp4parser.authoring.tracks.AppendTrack.<init>(AppendTrack.java:48)
09-03 11:53:43.400: W/System.err(28345): at com.spec.videoeditingdemo.service.asynctasks.MergeVideos.doInBackground(MergeVideos.java:113)
09-03 11:53:43.400: W/System.err(28345): at com.spec.videoeditingdemo.service.asynctasks.MergeVideos.doInBackground(MergeVideos.java:1)
09-03 11:53:43.400: W/System.err(28345): at android.os.AsyncTask$2.call(AsyncTask.java:288)
09-03 11:53:43.400: W/System.err(28345): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
09-03 11:53:43.400: W/System.err(28345): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
09-03 11:53:43.400: W/System.err(28345): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
09-03 11:53:43.400: W/System.err(28345): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
09-03 11:53:43.400: W/System.err(28345): at java.lang.Thread.run(Thread.java:841)
- 提前谢谢。如果有人可以帮我解决这个问题,我会很高兴。
答案 0 :(得分:0)
错误信息非常准确。样本描述框(==编解码器初始化)是不同的。因此你不能追加这些音轨 - 记住:mp4parser不能重新编码文件 - 它只是附加已经存在的内容。 有时可以忽略差异,但在大多数情况下,你不能忽视它。例如,如果不对其进行重新编码,您将无法追加具有不同分辨率或帧速率的两个视频。
那么:你的情况怎么样?是否使用相同的编码器设置对两个源视频进行了编码?