ffmpeg 打印音视频信息

#include 

int main(int argc, char *argv[])
{
    int err_code;
    char errors[1024];

    AVFormatContext *fmt_ctx = NULL;

    if(argc < 2){
        fprintf(stderr, "[Usage]you should input media file!\n");
        return -1;
    }

    char *src_filename = argv[1];

    av_register_all();

    /* open input file, and allocate format context */
    if ((err_code=avformat_open_input(&fmt_ctx, src_filename, NULL, NULL)) < 0) {
        av_strerror(err_code, errors, 1024);
        fprintf(stderr, "Could not open source file %s, %d(%s)\n", src_filename, err_code, errors);
        exit(1);
    }

    /* retreive stream information */
    if((err_code = avformat_find_stream_info(fmt_ctx, NULL)) < 0) {
        av_strerror(err_code, errors, 1024);
        fprintf(stderr, "Could not open source file %s, %d(%s)\n", src_filename, err_code, errors);
        exit(1);
    }

    /* dump input information to stderr */
    av_dump_format(fmt_ctx, 0, src_filename, 0);

    /* close input file */
    avformat_close_input(&fmt_ctx);

    return 0;
}

avformat_find_stream_info其实还是很有作用的,没有他是获取不到时长的,对于flv封装格式的好像也无法dump出信息。这儿以后可以研究一下。

 

Input #0, flv, from 'testfile.flv':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.42.100
  Duration: 00:01:44.30, start: 0.000000, bitrate: 559 kb/s
    Stream #0:0: Video: h264 (High), yuv420p(progressive), 1472x826 [SAR 1:1 DAR 736:413], 374 kb/s, 24.35 fps
, 25 tbr, 1k tbn, 50 tbc
    Stream #0:1: Audio: aac (LC), 44100 Hz, stereo, fltp, 176 kb/s

你可能感兴趣的:(ffmpeg入门)