[Libav-user] Accessing basic video parameters

rohit khali khali.rohit at gmail.com
Fri Jun 26 08:16:37 EEST 2020


>
> Very surprsing, Can't we get basic details about stream without decoding
> using libavcodec APIs like width,height.?
>
It's all part of sps/pps. I am using  av_parser_parse2() API, which forms
an AVC frame.
Please help.

Output:
{profile=100 level=31 width=0 height=0 codedwidth=0 codedheight=0
pix_fmt=(null) aspectRatio=0:1         frameRate=0:1 slices=0 }

Code: /*In my case there is no Input File, I get H264-ES in "data" as
below*/
AVCodec* codec = avcodec_find_decoder(AV_CODEC_ID_H264);
AVCodecParserContext* parser = av_parser_init(codec->id);
AVCodecContext* dec_ctx;
dec_ctx = avcodec_alloc_context3(codec);
av_parser_parse2(parser, dec_ctx, &pkt->data, &pkt->size,
                                   data, data_size, AV_NOPTS_VALUE,
AV_NOPTS_VALUE,
0);
if (pkt->size)
    {
        printf(
"{profile=%d level=%d width=%d height=%d codedwidth=%d codedheight=%d
pix_fmt=%s aspectRatio=%d:%d
\
        frameRate=%d:%d slices=%d }\n",
        dec_ctx->profile,
        dec_ctx->level,
        dec_ctx->width,
        dec_ctx->height,
        dec_ctx->coded_width,
        dec_ctx->coded_height,
        av_get_pix_fmt_name((AVPixelFormat)dec_ctx->pix_fmt),
        dec_ctx->sample_aspect_ratio.num,
        dec_ctx->sample_aspect_ratio.den,
        dec_ctx->framerate.num,
        dec_ctx->framerate.den,
        dec_ctx->slices
        );
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://ffmpeg.org/pipermail/libav-user/attachments/20200626/cf2ef3df/attachment.html>


More information about the Libav-user mailing list