How to get album image from MP3 using FFmpeg

The simplest way using command:

ffmpeg -i input.mp3 -an -vcodec copy cover.jpg

The another way using FFmpeg API:

int main(int argc, char* argv[]) {
    int i;

    if(argc != 3){
    printf("input mp3 url and output file name.");
    return -1;
    }

    const char *path = argv[1];
    const char *album_art_file = argv[2];

    avformat_network_init();
    av_register_all();

    AVFormatContext *pFormatCtx = avformat_alloc_context();

    if (avformat_open_input(&pFormatCtx, path, NULL, NULL) != 0) {
    printf("avformat_open_input() failed");
    av_free(pFormatCtx);
    }

    for (i = 0; i < pFormatCtx->nb_streams; i++)
    if (pFormatCtx->streams[i]->disposition & AV_DISPOSITION_ATTACHED_PIC) {
        AVPacket pkt = pFormatCtx->streams[i]->attached_pic;
        FILE* album_art = fopen(album_art_file, "wb");
        fwrite(pkt.data, pkt.size, 1, album_art);
        fclose(album_art);
        av_packet_unref(&pkt);
        break;
    }

    av_free(pFormatCtx);
    return 0;
}

Do you think it is very easy?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值