[Libav-user] Hello, I have a question to ask you. When I use the libavcodec library, an exception occurs: 5 frames left in the queue on closing. What is the reason for this problem? How can I fix it?
gsun at roblox.com
Mon Jun 7 19:30:53 EEST 2021
On Sun, Jun 6, 2021 at 9:58 PM aszswaz at 163.com <aszswaz at 163.com> wrote:
> I am using libavcodec to mp3 encoding the pcm recording file collected
> by alsa. Please refer to the attachment for the code. Although the code
> can run successfully, the following error will occur:
> [libmp3lame @ 0x5653c7e9b880] 5 frames left in the queue on closing.
> I want to ask you a few questions:
> 1. What is the reason for this error?
It means that there are still 5 frames not being encoded.
The encoder may group a few frames together to encode more efficiently. It
still expects more raw samples.
> 2. How does this error affect the mp3 audio?
The audio file will miss 5 frames of samples at the end.
> 3. How can I solve it?
You need to tell the encoder there are no more frames to be sent, by
calling avcodec_send_frame() with a NULL frame at the end. After that, keep
calling avcodec_receive_packet() until EOF is returned.
It is documented in avcodec_send_frame() in avcodec.h.
> Here is a detailed information:
> computer system: Manjaro x86_64
> linux kernel version: Linux 5.12.2-1
> ALSA version: Advanced Linux Sound Architecture Driver Version
> ffmpeg version: ffmpeg version n4.4 Copyright (c) 2000-2021 the FFmpeg
> Thank you for reading my mail.
> Libav-user mailing list
> Libav-user at ffmpeg.org
> To unsubscribe, visit link above, or email
> libav-user-request at ffmpeg.org with subject "unsubscribe".
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Libav-user