2011-12-07 29 views
5

私たちが取り組んでいるハードウェアはmkvファイルの再生をサポートしていません。 Matroska(mkv)のビデオファイルをmp4形式のビデオファイルに変換する必要があります。Gstreamer:Matroskaビデオをmp4にトランスコードする

私はトランスコーディングにオンラインで利用可能な材料から理解しているように、私は次の操作を実行するために必要だ:

  1. matroskademux要素を使用してMKVファイルの異なるストリームを分離。
  2. 利用可能なmkvデコーダを使用してオーディオとビデオストリームをRAW形式にデコードし、
    このデータをmp4 Muxer要素に供給し、必要な形式に再エンコードします。

私は適切なアプローチを適用してもらえますか? これに関する情報やリンクは非常に役に立ちます。

ビクラム

答えて

4

あなただけリマックス、全くそれをデコードする必要はないかもしれませんのMatroskaファイルにある内容に応じて。

動画はH264と仮定しているので、ちょうどそれを再ミックスしてください。 以下は、h264とmp3でファイルを再変換するためのgst-launchのパイプラインの例です。

gst-launch-0.10 -v filesrc location=$file \ 
! matroskademux name="demux" demux. ! h264parse ! queue \ 
! mp4mux name=mux ! filesink location=$file._out.mp4 demux. \ 
! mp3parse ! queue ! mux.` 

また、あなたはあなたが欲しい欲しい与える必要がありTransmageddon transcoder(www.linuxrising.org)で見ることができます。

+0

返信いただきありがとうございます。 もう1つ質問があります: 上記のコマンドを使用して、オーディオストリームがmp3の場合にmkvをmp4にremuxすることができました。 mkvにaacオーディオストリームがある場合、aacparser.someを使用すると、パイプラインキューはaacparse要素にリンクされません。 aacparseに関連する投稿の1つでは、オーディオストリームの "framed"フィールドがtrueに設定されている場合、 "aacparse"要素がパイプラインキューにリンクするのに に失敗することに言及しています。 この場合、オーディオストリームをRAW形式にデコードして、mp4mux要素のシンクに一致するようにエンコードする必要がありますか? –

+0

GStreamer gitのパーザーには多くの修正がありました。目標は数週間後に新しいリリースをリリースすることです。あなたの問題を修正する必要があります。 –

関連する問題