При использовании ffmpeg 3.4.4, поставляемого с моим дистрибутивом, у меня проблема с декодированием mp3 файлов.Декодер работает корректно для flac и m4a.
Я видел две проблемы, которые, по моему мнению, связаны, обе связаны с определением количества семплов в файле.
При открытиифайл, который я использую в следующей последовательности вызовов API:
avformat_open_input(...);
avformat_find_stream_info(...);
avformat_find_best_stream(...);
На данный момент AVStream
у меня, в отличие от случаев для flac и m4a, поле nb_frames
не равно числуобразцы.Вместо этого я должен использовать time_base
и duration
для вычисления количества выборок.
При декодировании файла я avcodec_send_packet
и avcodec_receive_frame
.AVFrame
, который заполняется, имеет неправильное значение для nb_sample
, так что после прочтения всего файла я заканчиваю декодировать только около 4% выборок.
Как правильно декодировать mp3-файлыс ffmpeg?