我正在使用ffmpeg實現音頻解碼器。 在閱讀音頻,甚至尋求已經工作的時候,我無法找到一種方法來清除緩衝區後,所以我沒有任何文物,當應用程序開始讀取音頻後立即尋求。FFMPEG尋求帶來音頻文物
avcodec_flush_buffers似乎對內部緩衝區沒有任何影響。所有解碼器(mp3,aac,wma,...)都會發生此問題,但PCM/WAV(由於音頻沒有壓縮,因此不使用內部緩衝器來保存數據以解碼)。
的代碼片段很簡單:
av_seek_frame(audioFilePack->avContext, audioFilePack->stream, posInTimeFrame, AVSEEK_FLAG_ANY);
avcodec_flush_buffers(audioFilePack->avContext->streams[audioFilePack->stream]->codec);
解釋:
audioFilePack->avContext = FormatContext
audioFilePack->stream = Stream Position (also used to read audio packets)
audioFilePack->avContext->streams[audioFilePack->stream]->codec = CodecContext for the codec used
上我應該做的,所以我可以尋求和獲得無殘留的音頻任何想法? 謝謝!
請問,沒有想法?我試圖解決這個問題近2個星期沒有任何想法可能會導致這種情況...應該如何工作? –
消息也發送到ffmpeg用戶的官方郵件列表。幫助仍然需要。 –
你能更詳細地描述工件嗎?他們是否點擊並彈出? –