2014-09-03 4 views
1

[Я нашел ссылку ниже в stackoverflow, но это не соответствует моим требованиям. Я пытаюсь добавить видео, представив пользовательскую галерею для пользователя, в котором отображаются все видеоролики, хранящиеся на SD-карте, и пользователь должен выбрать любое их количество, и, наконец, после нажатия кнопки добавления видеороликов, которые будут объединены/добавлены, он отлично работает во многих случаев, но в некоторых случаях это не помогает, не понимают эту ошибку и как ее решить. И вышеприведенная ссылка используется для setVideoCodec для видео, которые записаны из самого приложения, которое я не делаю. Как изменить видеокодек уже имеющегося видео mp4?mp4 parser - описание примера в полевых статьях отличается от

Это ошибка журнала, которую я получаю при добавлении. Я также напечатал записи описания образца образца, чтобы получить помощь из него, но безрезультатно, и я вижу, что записи описания примера образца одинаковы, и нет документации по Библиотека 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[[email protected]] 
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[[email protected]] 
09-03 11:53:43.400: W/System.err(28345): java.io.IOException: Cannot append [email protected] to [email protected] 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

сообщение об ошибке довольно точное. Исходные поля описания (== инициализация кодека) различны. Поэтому вы не можете добавить этот трек - помните: mp4parser не может перекодировать файл - он просто добавляет то, что уже есть Иногда различия c игнорируется, но в большинстве случаев вы не можете его игнорировать. Например, вы не сможете добавлять два видео с разным разрешением или частотой кадров без их перекодирования.

Итак: как это происходит в вашем случае? Были ли закодированы два исходных видео с теми же настройками кодировщика?

+0

Вот что я спрашиваю, есть ли способ узнать видеокодек уже имеющегося видео на SD-карте. И, следовательно, любой способ перекодировать их в том же формате, прежде чем передавать их для слияния, поэтому такие проблемы не сохраняются. Обратите внимание: все эти видеоролики - это не те, что записаны на камеру cel-phone, это несколько разных файлов mp4, таких как мультфильм mp4 video. –

+0

Если вам нужно перекодировать, я бы сказал, что вам лучше с чем-то вроде ffmpeg или с помощью MediaCodec API (Android 4.x) вместе с mp4parser. –

+0

Эй, Себастьян. Не могли бы вы сообщить мне, какие у меня все свойства необходимо обязательно проверить, можно ли добавить два видео? Чтобы я мог предварительно сообщить пользователю, что выбранное видео не может быть добавлено к ранее выбранным видео. –