[英]Unable to find audio stream
我正在嘗試改編代碼,以便在ffmpeg和DirectShow的幫助下(在實時流上)添加聲音捕獲功能。
當我嘗試使用ffplay播放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-> stream中找到的唯一流是一個視頻。 這就是為什么我無法捕捉聲音的原因。
所以我要問我的開業是否做錯了什么,或者我錯過了什么。
附:我知道顯示的代碼很短,但是問題就在這一步!
謝謝
庫爾特
-編輯-
我還注意到,當我轉儲AVFormatContext時,視頻流的大小為456x32。 當我嘗試使用ffplay啟動損壞的腳本時,我可以發現顯示的窗口大小與此相同。
當我使用ffplay播放正確的腳本時,原始視頻格式為1920x1080
我認為我的問題可能比無法獲得音頻流的簡單事實還要深。
我試圖找出如何知道此456x32窗口上顯示的錯誤消息
-編輯2-
我找出此圖像上寫的內容,並解決了我的問題,將舊腳本放置在錯誤的AVS腳本中。
我很慚愧。
我的錯,
一個放置不當的avs文件是我的問題。
無論如何,ffmpeg在顯示錯誤的方式上有點痛苦,被迫制作沒有任何錯誤的msg或異常引發的快照(或者我失敗了)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.