0

少し奇妙なフォーマットのビデオファイルがたくさんあります。通常のビデオ ストリームと、(GPS 同期ハードウェア クロックからの) ビデオ フレームの正確なタイム スタンプを格納するために使用されるテキスト ストリームもあります。からの出力例を次に示しますffmpeg

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。オーディオ、ビデオ、および字幕ストリームのみを処理する必要があり、テキストは有効な字幕形式ではありません。ビデオを作った人は引退したばかりなので、入力形式を変更することはできません。何か案は?

4

1 に答える 1

0

さて、ここで何をしようとしているのか考えてみましょう:

  • スペースを節約し、アーカイブをそのまま残したい場合。崇高な考え。しかし、ビデオファイルの用途は何ですか? AVI ファイル内にデータ ストリームがあるため、そのファイルを読み取って処理するソフトウェアがあるようです。それで、そのソフトウェアは圧縮されたビデオをまったく読み取ることができますか?
  • ビデオのフレームレートは一定ですか、それとも変化していますか? 一定の場合は、最初のフレームの時間を抽出し、ファイルを使用するときに各フレームの時間をプログラムで計算できます。
  • AVI は、あなたがしようとしていることを処理しません。ビデオ フレームとタイムスタンプが 1 対 1 で対応しているため、現在のものを使用できます。ビデオがパックされると、キーフレームやその他のビデオ データが存在し、キーフレームにタイムスタンプを付けることができるだけになります。
  • ファイルを使用するためのソフトウェアが必要ない場合は、ビデオのフレームにタイムスタンプを付けて、データ ストリームを完全に破棄することを検討できますか?

ええと、私は答えを出したくありませんでしたが、あなたの質問はあまりにもオープンエンドです。

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

于 2011-07-05T20:09:07.540 に答える