2011-07-05 2 views
0

私はちょっと変わったフォーマットのビデオファイルをたくさん持っています。通常のビデオストリームがあり、ビデオフレームの正確なタイムスタンプを保存するために使用されているテキストストリームもあります(GPS同期ハードウェアクロックから)。ここでffmpegからの出力例です:他のストリームを盲目的にコピーしながら、AVIビデオストリームを圧縮する

Input #0, avi, from 'in.avi': 
    Duration: 00:00:52.13, start: 0.000000, bitrate: 311033 kb/s 
    Stream #0.0: Video: rawvideo, rgb32, 658x492, 30 tbr, 30 tbn, 30 tbc 
    Stream #0.1: Data: 0x0000 

ビデオが圧縮されていないが、私はそれを圧縮します。私は正常にその部分にffmpegを使用しています。問題は、データストリーム#0.1を出力ファイルに完全に変更しないでマップしたいということです。私は試してみたことがありますが、私はそれをするために何か方法を見つけることができませんffmpeg。 Audio、Video、Subtitleストリームのみを処理したいだけで、テキストは有効な字幕形式ではありません。動画を作った人が退職したので、入力フォーマットを変更することはオプションではありません。何か案は?

+0

マルチステッププロセスでも構いませんが、両方のストリームが最後に同じファイルに戻ってくる必要があります。 – rescdsk

+1

あなたは既に自然な解決策である '-map'を試しているようです。短いサンプルビデオを入手できますか?私たちのほとんどは、ランダムな余分なデータトラックを持つビデオを持っていません。 – blahdiblah

+0

あなたの関心をお寄せいただきありがとうございますが、これは以前の仕事でしたので、幸いにもそれはもう私の問題ではありません:-) – rescdsk

答えて

0

さて、あなたはここでやろうとしているかを考えてみましょう:

  • あなたがスペースを節約し、そのままあなたのアーカイブを持っていると思います。貴族のアイデア。しかし、ビデオファイルの使用法は何ですか?あなたはAVIファイルの中にあなたのデータストリームを持っているので、あなたはそのファイルを読んで何かをするソフトウェアを持っているようです。それで、そのソフトウェアは圧縮されたビデオを全く読むことができますか?
  • は、ビデオフレームレート定数か、それとも変更されていますか?定数であれば、最初のフレームの時間を抽出することができ、ファイルが使用されたときに各フレームの時間をプログラム的に計算することができます。
  • AVIはあなたがしようとしていることを処理しません。ビデオフレームからタイムスタンプまで、ビデオがパックされ、KEYFRAMESやその他のビデオデータが1対1で対応し、キーフレームのタイムスタンプのみが可能になるので、今持っていることができます。
  • ファイルを使用するためのソフトウェアが必要ない場合は、ビデオのフレームのタイムスタンプを考慮して、データストリームを完全に捨てることができますか?

まあ、私は答えは答えたくありませんでしたが、あなたの質問はあまりにも自由です。

EDIT:AVIファイルARE実際には一定のフレームレートを使用していますので、最初のテクニックを使用して、最初のフレームのタイムスタンプをファイルに書き込むことができます。

関連する問題