問題タブ [riff]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
674 参照

c# - .Wav Speex ヘッダー コンテンツに関する問題

Speex Voice ACM Codec 1.0.1.1 コーデックをインストールしましたが、この NSpeex(C#) パッケージの C# コードで記述されているものとは異なる .wav ヘッダーがあるようです。

「Speex Voice ACM Codec 1.0.1.1」で作成した .wav ファイルを読み取って正常にデコードできますが、.wav ファイルを作成すると、「Speex Voice ACM Codec 1.0.1.1」がヘッダーを認識しません。Hexエディタで確認したところ、.wavヘッダーに「Speex Voice ACM Codec 1.0.1.1」が作成するバイトと作成していないバイトがあり、NSpeex.PcmWaveWriterクラスとは異なっています。

だから、私はこの部分に同意します:

しかし、残りは NSpeex.PcmWaveWriter クラスのコードにあるものではありません。

Hex エディターでは、(上記の部分の後に) 「Speex Voice ACM Codec 1.0.1.1」によって作成された .wav ファイルに次のように表示されます。

しかし、それが何なのか、「Speex Voice ACM Codec 1.0.1.1」に対応する .wav ヘッダーを作成する方法がわかりません。繰り返しますが、彼らの .wav ファイルをデコードし、デコードできる .wav ファイルを作成できますが、そのコーデックは私の .wav ヘッダーを認識しないようです。

Speex は「オープン ソース」であるはずですが、誰かが .wav (speex) ヘッダーの秘密のバイトを明らかにできますか?

0 投票する
1 に答える
3257 参照

java - WAV/RIFF オーディオ データをデコードする方法は?

WAV/RIFF ファイルに書き込むことができるランダム オーディオを生成するプログラムを作成しようとしています。これのおかげでヘッダーは簡単に理解でき、WAV/RIFFファイルにバイトデータを書き込む方法はここで見つけましたが、WAV/RIFFオーディオデータがどのようにエンコードされているかを指定するものは何も見つかりませんそれらのバイト。

だから私がやろうとしているのは、データを分析して(これを私に渡そうとしていない;))、バイトで何が起こっているのかを知ることで、プログラムを適切に書くことができるようにすることです。では、WAV/RIFF ファイルのオーディオ チャンクをデコードして、各バイトで何が起こっているか (振幅、周波数など) を理解する方法を説明するものはありますか? ここで何かが欠けている可能性があることは理解しています。おそらく、各バイトは探しているものではないかもしれませんが、トピックで見つけたスパースデータしかないようです。

現時点ではこれに Java を使用するため、実装固有のオプションがあれば教えてください。

ノート

私が探しているものの一般的な領域にあると思われるthisthisも見つけましたが、まだそこに到達していません。したがって、私が探しているのは、個々のバイトを分析して何が起こっているかを確認する方法を示す仕様または例であり、それらの記述方法を学ぶことができます。

編集

ある友人は、私がこれを考えすぎているのではないかと、Java で未加工のオーディオ データをバイト単位で分析するよりも簡単に分析できる Java ライブラリがあるかもしれないと提案しました。もしそうなら、これに関する提案やどこを見るべきですか?

0 投票する
1 に答える
2184 参照

c++ - XAudio2でWAVファイルを読み込む

WAV ファイルを読み込んで再生できるプログラムを作成しています。XAudio2 ライブラリを使用しています。msdn.microsoft.com の助けを借りて作成を開始しましたが、msdn からコードをほぼ正確にコピーしましたが、それでも機能します。うまくいかない。どこに問題があるのか​​わからない。CreateSourceVoice でサウンドを再生しようとすると、XAUDIO2_E_INVALID_CALL エラーが発生します。私は助けに感謝します。彼は私のコードです:

私の一時的なメイン:

また、WAV ファイル内のチャンクを検索する関数:

0 投票する
0 に答える
1039 参照

audio - libsndfile: JUNK チャンクをスキップする wav を読み込む

libsndfile ライブラリを使用していました。しかし最近になって、一部の wav ファイルにこの余分な JUNK セクションが含まれていることがわかりました。libsndfile はそれを JUNK として分類せず、単にデータとして読み込んでいます。

私のwavファイルの構造は次のとおりです。

JUNKセクションを含むtest.wav.

この JUNK セクションをスキップまたは無視する方法を知りたいです。これは、 fmttest.wavoff=56off=20JUNK がない場合です。

解決策が libsndfile 以外のライブラリを使用することである場合は、この JUNK ブロックをプログラムでスキップできるライブラリを提案してください。

0 投票する
1 に答える
2622 参照

c++ - C++ での wav ファイルの読み取りエラー

.wav ファイルがあり、C++ で読みたいと思っています。RIFF ファイル ヘッダーについて調査し、それをロードするコードを作成しました。

ただし、入力ファイル OS.wav でこのコードを実行するのは非常に複雑です。次の情報が出力されます。

「fmt」が「Fake」であることがわかります。

次に、sox を使用してこの wav ファイルを次のように変換します。

私のコードをもう一度実行してください。次の情報があります。

私は何も変えませんでした。しかし、ヘッダー情報は大きく異なります。なぜこれが起こるのか誰か教えてください。

ありがとうございました。

0 投票する
2 に答える
2833 参照

c++ - wav ファイルのフレームとサンプルを取得する

まず、独自のライブラリを使用せずにこれを実行しようとしています。これにより、移植性が向上し、ここで何が起こっているのかをよりよく理解できます。反復的な機能 (ヘッダーの解析など) を処理するために、独自のクラスとライブラリを作成しても問題ありません。

そのため、オーディオ ファイルに関する情報 (つまり、ファイル内のオーディオの長さ、サンプル数、フレーム数など) を計算するために、ストリームを介してWAV/RIFFファイルを読み取る方法を知りたいと思っています。そして、他の機能のためにそれらのフレームまたはサンプルを繰り返します。

RIFF仕様fstreamで指定されているように、バイナリファイルとして読み込んでヘッダーを許可する(そしてヘッダーからいくつかの情報を取得する)ことは知っていますが、フレームまたはサンプルへのバイト、および長さへのバイトをどのように識別しますか?

他の言語でこれを扱う問題を見つけることができますが、C++ で直接関連するものは見たことがありません。

0 投票する
4 に答える
30235 参照

python - 次の理由により、ファイル file.wav を WAV として開くことができませんでした: ファイルが RIFF ID で始まっていません

Python で RIFF ファイル (これは WAV の一種であることがわかっています) を開こうとすると、このエラーが発生します。

さまざまなツールで調べてみると、本当に WAV / RIFF ファイルであることがわかりました。

0 投票する
1 に答える
1019 参照

perl - RIFF WAV ヘッダー形式 2014 更新?

さらなる操作のために perl で WAV ファイルをデコードおよび再生しようとしています。形式に関する参考文献と興味深い q+a をいくつか見つけました。

オーディオ フレームには何が含まれますか? C++ での wav ファイルの読み取りエラー wav ファイル への音符の書き込み

「Cannonical WAVEファイルフォーマット」を知ったここに画像の説明を入力

しかし最後に、「標準」に従わない 2 つの異なる WAV ファイルをテストしています。Mplayer はデータの読み取りにまったく問題がなく、perl コードの回避策を見つけました。

それでも、それが実際にどのように機能するか、そして変数データが​​「サンプルあたりのビット数」フィールドと「データ」フィールドの間にあることは何ですか。

君たちありがとう!

(私はこのフォーラムにはまっています)

test2.wav

test.wav

0 投票する
1 に答える
177 参照

c# - GDI RLE とは異なる RIFF AVI RLE

私は 1990 年代初頭に作成された基本的な RIFF AVI を持っており、ネイティブの VB/C# コードで基本的なビデオ プレーヤーを作成しようとしています。ヘッダーによると、古い MS RLE コーデックを使用しています。AVI のビットマップ ヘッダーは、RLE8 で圧縮されていることを示します。

ビットマップ ルール

  1. これは、実用的にゼロから作成され、Windows フォト ビューアーで開かれたビットマップに書き込まれた生の 'xxdc' 圧縮データの結果です。
  2. VirtualDub を使用して抽出された同じフレーム
  3. RLE8ビットマップを解凍する以下のコード

問題は、以下のコードと Windows の両方が同じことを行うことです。一部が欠落しているため、古いVirtualDub ブログ投稿から次のようになります。

(GDI の RLE は AVI の RLE と同じではありません)".

問題は、違いが見つからないことです:(。インターネット上のソースやMSDNの資料が見つかりません。

RLE8 解凍サンプルを htttp://dirkbertels.net/computing/bitmap_decompression.php から VB に移植しました (簡潔にするためにビットマップ構造は省略されています)。それは御馳走になります。問題は、RLE8 を使用する AVI フレームでは正しく動作しないことです。

古い MSRLE.DLL コーデックを使用せずに、VirtualDub、FFMPEG などでそれを行う方法について、私は今途方に暮れています...誰かアイデアはありますか?