/usr/bin/ld: warning: libswresample.so.1, needed by /usr/lib/gcc/i686-linux-gnu/4.9/../../../../lib/

利用FFMPEG简单分离音视频数据流

测试源码来源于:http://my.oschina.net/u/2336532/blog/399058

#include <stdio.h>

#include "libavformat/avformat.h"

 

static const char *media_file = "11.mp4";

int main(void)

{

    int i, vid_idx, aud_idx;

    FILE *fp_vides = NULL, *fp_audes = NULL;

    AVFormatContext *pFormatCtx = NULL;

    AVPacket pkt;

 

    av_register_all();

    avformat_open_input(&pFormatCtx, media_file, NULL, NULL);

    avformat_find_stream_info(pFormatCtx, NULL);

 

    fp_vides = fopen("vid_es.dat", "wb");

    fp_audes = fopen("aud_es.dat", "wb");

    // 1, handle stream info

    for (i=0; i<pFormatCtx->nb_streams; i++)

    {

        if (pFormatCtx->streams[i]->codec->codec_type ==AVMEDIA_TYPE_VIDEO)

            vid_idx = i;

        else if (pFormatCtx->streams[i]->codec->codec_type ==AVMEDIA_TYPE_AUDIO)

            aud_idx = i;

        else

            ;//such as subtitile

    }

    while (av_read_frame(pFormatCtx, &pkt) >= 0)

    {

        // 2, handle pkt data

        if (pkt.stream_index == vid_idx)

            fwrite(pkt.data, pkt.size, 1, fp_vides);

        else if (pkt.stream_index == aud_idx)

            fwrite(pkt.data, pkt.size, 1, fp_audes);

        else

            ;// such as subtitile

        av_free_packet(&pkt);

    }

    fclose(fp_vides);

    fclose(fp_audes);

    avformat_close_input(&pFormatCtx);

    return 0;

}



解决方案:

gcc -o ffmpegtest acc.c -lavformat -lavcodec -lavutil -lz -lm -lswresample

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值