2017-10-23 6 views
0

AVFoundationフレームワークを使用して2つのビデオを1つずつ連結しようとしています。 AVAssetExportでエクスポートすると、結果は正常です。 HTML5ビデオでビデオを再生すると、Safari、Firefoxでは見ることができますが、Google Chromeでは見ることができません。 深い分析の結果、根本的な原因は、エクスポートされたビデオに2つのオーディオチャンネルがあることが分かりました !!!! 動画から音声を削除すると、すべてGoogle Chromeでも動作します。私のコードでAVFoundation concatビデオとオーディオ

は私が同じトラックにオーディオを追加しましたが、異なる時間範囲:私はこれはGoogle Chromeの上で許可されていない代わりに、1の私の2つの別々のaudiotracksを、生産推測

asset1.tracks(withMediaType: AVMediaTypeAudio)[0].insertTimeRange(asset1.duration, asset1, start1) 
asset2.tracks(withMediaType: AVMediaTypeAudio)[0].insertTimeRange(asset2.duration, asset2, start2) 

。 このリンクには、ビデオ:http://www.livebomber.com/prova.php があります。SafariまたはFirefoxで開くと正常に動作しますが、Google Choromeを使用するとエラーが表示されます。 すべてのオーディオトラックを1つにマージしてエクスポートするにはどうすればよいですか? ありがとうございます

答えて

0

thisライブラリを使用して3つのビデオをマージしているうちに、全く同じ問題が発生しました。それらのうち2つは同じリソースからのものでしたが、もう1つは解像度と設定の異なるリソースからのものでした。 2日間掘り起こした後、問題のあるビデオのオーディオチャンネルをモノラルに変換するだけで済むということを明らかにしました。

私が知っている、それは任意のコードを使用して恒久的な解決策ではないのですが、私はそれがコードを使用してそれを解決したいものにアイデアを提供しますだと思う:)

はそれがお役に立てば幸いです。

+0

こんにちは、ありがとうございました。私は間違いなくこれを試してみます。 私の場合、私は48kオーディオサンプルレートで1つのビデオmp4と、iOSカメラから44,1kオーディオサンプルレートでもう1つのmovを得ました。 両方とも480x640です。 ステレオをモノラルに変換する最良の方法は何ですか? –

+0

Hey Alessio、マージされたビデオクリップ内のオーディオプロパティの違いは、再生の問題を引き起こす可能性があります。私は使用していたビデオを作成するためにAdobe Premiereを使用しました。オープンソースのコマンドラインツール 'ffmpeg'も変換に使用される可能性があります。しかし、私はAVFoundationを使ってアプリケーション内でこれらの変換をすべて処理するのが最善の方法だと思うが、十分な経験がない。申し訳ありません:/ – scaryguy

+0

ありがとうございます!解決策はフレームごとにAVAssetWriterで再エンコードすることですが、まだ試していません。 –

関連する問題