私はffmpegとdirectshowの助けを借りて(ライブストリーム上で)サウンドキャプチャ機能を追加するためにコードを適応しようとしています。オーディオストリームを見つけることができません
私はAVIsynthファイルを再生しようとすると、すべてが完璧に動作します。私はオーディオとビデオを持っています。しかし、この入力ファイルをコードで開くと、私はビデオストリームしか見つけることができません。
AVSファイル:
V = DirectShowSource("Decklink_HDMI.grf", fps=10, framecount=1000000000, seek=false, audio=false)
A = DirectShowSource("Decklink_Audio.grf", fps=1, framecount=1000000000, video=false)
AudioDub(V, A)
オープニングコード:
ffmpeg::AVInputFormat * ifmt;
ifmt = ffmpeg::av_find_input_format("avs");
// Open input file
if(ffmpeg::avformat_open_input(&pFormatCtx, filename.toStdString().c_str(), ifmt, NULL) != 0)
私は、開封後のgdb上の変数見張りをします。
ストリームはビデオ一つです>私はpFormatCtx-> nb_streamsでnb_streamsを見ていることだし、それは1 で私はpFormatCtx-で見つけることができる唯一のストリームです。それで、私はその音を捉えることができません。
私は私のオープニングで何か間違っているのか、何かが欠けているのか聞いています。
Ps:表示されているコードが短いことは分かっていますが、問題はこの非常に重要なステップです。私も、私はAVFormatContextをダンプする際に、ビデオストリームは456x32のサイズを持っていることに気づいた
- EDIT -
はあなたに
クルト
ありがとうございます。 そして、私はffplayで破損したスクリプトを起動しようとすると、これと同じサイズのウィンドウが表示されることがあります。
私はffplayで正しいスクリプトを果たし、元のビデオフォーマットは、私は私の問題は、オーディオストリームを取得することができないの単純な事実よりも多分深いと思い1920x1080の
です。
私は
この456x32のウィンドウに表示されたエラーメッセージを知っている方法を見つけようとしている - EDIT2 - 私はこの画像に書かれているかを調べる
をし、私の問題があります解決した、ひどく置かれたavsスクリプトは、古いものがあった場所です。
私は恥ずかしいです。ひどくファイルAVS置か
pFormatCtx-> nb_streams == 1の場合、そのファイルには1つのストリームしかありません。 –
これは正しいコヨーテですが、私はffplayまたはバーチャルダブでこのファイルを再生すると、そのストリームが明確に2ストリームであることを確認できます。したがって、AVSファイルに疑問のない2ストリームが含まれています。 – Kurt
そのファイルの短い例をアップロードできますか?つまり、ffplayを作成し、コードをステップ実行して、ffplayがどのように動作するかを見ることができます... –