저는 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-user 공식 메일 링리스트로 보낸 메시지. 아직 도움이 필요합니다. –
아티팩트를 더 자세히 설명 할 수 있습니까? 클릭 수와 팝콘 수 있습니까? –