2012-04-10 69 views
0

私は、通常のテキスト/バイナリファイルに関する経験があります。今、私はlibavffmpegのような外部ライブラリを使わずにメディアファイル(ビデオ/オーディオ)などのより高度なファイルフォーマットを処理したいと思います。目的は、これらのファイルを処理するための原則を理解することです。C/C++での通常のファイル読み取り機能を使用してメディアファイルを読み取る方法は?

しかし、私はインターネット上でこのテーマを学ぶための基本的なチュートリアルを見つけることができないようです。誰にでも役に立つ情報がありますか?また、「.mp4」、「.mp3」などのファイルから「生」をどのように処理することができますか...

+2

異なるファイルには異なるヘッダーがあります。たとえば、bmpファイルにはファイルの最初にビットマップファイルヘッダーがあり、wavにはデータチャンクのシーケンスが続くヘッダーがあります。ファイル形式の仕様を読み、仕様に基づいてファイルを解析する必要があります。例:http://en.wikipedia.org/wiki/BMP_file_formatおよびhttps://ccrma.stanford.edu/courses/422/projects/WaveFormat/ – Cyclonecode

+1

オーディオの場合、最も単純な形式は、非圧縮のサウンドウェーブを格納するWAVです。私は同じ時間前に簡単なWAVプレーヤーを作った...この記事は良いリソースかもしれない:http://www.sonicspot.com/guide/wavefiles.html – Imp

答えて

2

これは広い質問です。あなたは正確に何をしたいですか?達成するために必要な具体的な目標を持っていますか?その場合は、FFmpeg/Libavを使用してトランスコードします。あなたは学習のためにこのようなことをする方法を学ぶのが面白いですか?それもクールです。読む。

既にオーディオフォーマットを念頭に置いているようです。 1つのタスクは、シンプルなオーディオコーデック(例えば、ADPCMのバリエーション)でエンコードされた単純なオーディオフォーマット(.WAVや.AIFFなど)を処理し、if(ファイルを開き、ヘッダを解析し、データ、およびオプションで、オーディオ出力インターフェイスに送信して再生することができます)。

The MultimediaWikiは、技術的なマルチメディア情報(開示:私はサイトを運営しています)の無料オンラインリソースです。それに沿ってあなたに役立ついくつかの情報を持っている必要があります。あなたがマルチメディア技術にもっと深く関わってみたいと思ったら教えてください。

UPDATE:ここ はあなたが試すことができますいくつかの特定の、オーディオ志向の目標です:このディレクトリからのファイルのいくつかを見てください:http://samples.mplayerhq.hu/A-codecs/libsndfile-samples/(私は数年前にこれらを生成し; here's information about how I did it)。 aif-ima-adpcm.aif、wav-ima-adpcm.wav、およびwav-ms-adpcm.wavの各ファイルを調べることをお勧めします。それらを解析し、内部のオーディオをデコードし、それらをコンピュータのオーディオデバイスに出力する方法を解説します。一部のリソースは、あなたが始めるのに役立つ:あなたと仮定すると

幸運を祈る!さらに質問をすることをためらってはいけません(ただし、これらの質問は別々の質問にする必要がありますので、このエントリーはあまりにも扱いにくくはありません)。

+0

ありがとう。はい、私は学習のためにこれをしたいと思います。しかし、マルチメディアが実際にコンピュータでどのように処理されるかを垣間見るために、いくつかのシンプルなフォーマットを実装したいと思います。大学で学んだ多くの科目のように、直接使うことはできませんが、後で実際に作業する必要があるときに役立ちます。私たちはその分野を掘り下げる基礎を持っています。そして私は、ライブラリを使うのではなく、最初から学びたいと思っています。 – Amumu

+0

私は知識のためにあなたの渇きに拍手を送る。私はいくつかの具体的な例で私の答えを更新します。 –

関連する問題