iOSでWMAファイルをMP3に変換したいです。AVFrame
そして、ここでサンプル コードを学習することで、WMA ストリームを正常に解析でき
ました。AVFrame
、そして私はこのようなコードを試しましたが、うまくいきません:
AVCodecContext *outCodecContext = NULL;
AVCodec *pCodec = avcodec_find_decoder(AV_CODEC_ID_MP3);
if(pCodec == NULL){
fprintf(stderr, "out avcodec_find_decoder error\n");
exit(1);
}
AVCodecContext *pCodecCtx = avcodec_alloc_context3(pCodec);
if(pCodecCtx == NULL){
fprintf(stderr, "out avcodec_alloc_context3 error\n");
exit(1);
}
if(avcodec_open2(pCodecCtx, pCodec, NULL) < 0){
fprintf(stderr, "out avcodec_open error\n");
exit(1);
}
outCodecContext = pCodecCtx;
do{
AVPacket packet;
if(av_read_frame(pFormatCtx, &packet) < 0){
break;
}
int got_frame_ptr;
if(packet.stream_index==videoStream)
{
avcodec_decode_audio4(pCodecCtx, pFrame, &got_frame_ptr, &packet);
if(got_frame_ptr)
{
AVPacket outPacket;
int out_got_packet_ptr;
avcodec_encode_audio2(outCodecContext, &outPacket, pFrame, &out_got_packet_ptr);
[finalData appendBytes:outPacket.data length:outPacket.size];
NSLog(@"finalData len: %d", [finalData length]);
}
}
av_free_packet(&packet);
}while(true);
NSString *svfp = [getAppDocumentDirectory() stringByAppendingPathComponent:@"finalData"];
[finalData writeToFile:svfp atomically:YES];
コンソールに常にメッセージが表示されます。
[mp3 @ 0xa393200] nb_samples (12288) != frame_size (0) (avcodec_encode_audio2)
誰でも助けることができますか?ありがとう。