1

[stackoverflow で以下のリンクを見つけましたが、要件と一致しません。SDカードに保存されているすべてのビデオが表示され、ユーザーが任意の数のビデオを選択する必要があるカスタムギャラリーをユーザーに提示することにより、ビデオを追加しようとしています。場合によっては失敗しますが、このエラーとその解決方法を理解していません。上記のリンクは、私が行っていないアプリケーション自体から記録されたビデオの setVideoCodec に使用されます。既に利用可能な mp4 ビデオのビデオコーデックを変更するには?

これは、追加中に発生するログ エラーです。ヘルプを得るためにサンプル ボックスの説明エントリも印刷しましたが、役に立ちませんでした。サンプル ボックスの説明エントリが同じであり、Isoparser ライブラリのドキュメントがないことがわかります。手伝ってください。私は使用isoparser-1.0-RC-2.jaraspectjrt-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)

-前もって感謝します。誰かが私の問題を手伝ってくれたらとてもうれしいです。

4

1 に答える 1

0

エラーメッセージは非常に正確です。サンプルの説明ボックス (== コーデックの初期化) は異なります。したがって、これらのトラックを追加することはできません - 覚えておいてください: mp4parser はファイルを再エンコードすることはできません - 既にそこにあるものを追加するだけです。違いを無視できる場合もありますが、ほとんどの場合は無視できません。たとえば、解像度やフレームレートが異なる 2 つの動画を再エンコードせずに追加することはできません。

だから:あなたの場合はどうですか?2 つのソース ビデオは同じエンコーダー設定でエンコードされていますか?

于 2014-09-03T08:56:20.497 に答える