0
我想知道如何從ALAC媒體文件中使用FFmpeg庫獲得extradata而無需手動解析文件?FFmpeg - 如何獲取打開ALAC編解碼器所需的額外數據?
我設置最初:
avformat_open_input(&formatContext, pszFileName, 0, 0);
avformat_find_stream_info(formatContext, NULL);
av_find_best_stream(formatContext, AVMEDIA_TYPE_AUDIO, -1, -1, &codec, 0);
codecContext = avcodec_alloc_context3(codec);
目前我能夠檢測並發現ALAC編解碼器,但它無法打開該編解碼器返回AVERROR_INVALIDDATA,這是從而額外和extradata_size不是組。
avcodec_open2(codecContext, codec, NULL);
FFmpeg的文件指出,一些編解碼器需要而額外和extradata_size設置爲編解碼器的規格。但是不應該由設置這個數據avformat_find_stream_info?
謝謝,我現在可以打開的編解碼器,但在解碼時獲得: V/FFMPEG:33 4096無效零塊大小4065 V/FFMPEG:未知預測類型:3 V/FFMPEG:無效零塊大小26 4096 4094 V/FFMPEG:不支持的語法元素:5. 可能的原因? – Sowry
你能發佈完整的代碼和一個示例輸入文件嗎? –
管理修復它。實施中再一次出現了問題。在使用avcodec_decode_audio4解碼之前,我沒有調用** av_read_frame(formatContext,&packet)**。 – Sowry