首页 > 其他分享 >ffmpeg一些笔记: 代码调试数据

ffmpeg一些笔记: 代码调试数据

时间:2022-11-12 22:45:09浏览次数:38  
标签:decAvc ffmpeg 笔记 sample rate base time 调试 avc

1.AAC,MP3他的解码数据格式不支持,程序中给的是这个AV_SAMPLE_FMT_FLTP,  Screen-Cpature-Recoder的codec-id为AV_CODEC_RAW_VIDEO,virtual-audio-capturer的codec-id为AV_CODEC_FIRST_AUDIO,声音默认的数据格式不支持aac,mp3

2.mp4文件解码 25fps的视频,在写完write header之后,time_base是1/12800
也就是说他的dts/pts 间隔512,比如0,512,1024,1536
公式如下:
1.0 / (512* 1 / 12800) = 25 fps

3.我们在自己组织MP4的时候实际上可以用av_get_time()来定义dts,pts。

      公式为   (av_get_time() / 1000 - enc_start_time) / time_base;     time_base分别对应相应stream的 video,audio的time_base

 

4.在编码的时候,有AVFrame这个变量,而这个根据提示需要把pix_fmt设置成YUV_420P

5. video时CodecContext的有效拷贝:

void CopyVideoCodecContext(AVCodecContext* decAvc, AVCodecContext* avc)
    {
        avc->pix_fmt = decAvc->pix_fmt;
        avc->width = decAvc->width;
        avc->height = decAvc->height;
        avc->coded_width = decAvc->width;
        avc->coded_height = decAvc->height;
        avc->gop_size = 30;//decAvc->gop_size;
        avc->max_b_frames = decAvc->max_b_frames;
        avc->sample_aspect_ratio =  avc->sample_aspect_ratio;

        avc->bit_rate = decAvc->bit_rate;
        avc->time_base = decAvc->time_base;
        avc->framerate = decAvc->framerate;

    }

 audio时CodecContext的有效拷贝:

void CopyAudioCodecContext(AVCodecContext* decAvc, AVCodecContext* avc)
    {
        avc->sample_fmt = decAvc->sample_fmt;
        avc->bit_rate = decAvc->bit_rate;
        avc->sample_rate = decAvc->sample_rate;
        avc->channel_layout =  decAvc->channel_layout;
        avc->time_base = decAvc->time_base;
        avc->channels = av_get_channel_layout_nb_channels(decAvc->channel_layout);
    }

 

标签:decAvc,ffmpeg,笔记,sample,rate,base,time,调试,avc
From: https://www.cnblogs.com/yang131/p/16884920.html

相关文章

  • Spring 事务(测试)--在这个笔记中记录的是没有添加事务,数据库返回的效果。
    第5章Spring事务(测试)--在这个笔记中记录的是没有添加事务,数据库返回的效果。1.首先搞两张表,商品表和订单表举例:购买商品trans_sale项目本例要实现购买商品,模拟用......
  • 学习笔记-一文读懂Android Gradle
    一文读懂AndroidGradle为什么写这个?Gradle是什么AS中的GradleBuildScript执行顺序gradle对象setting对象project对象Rootbuild.gradlebuildscriptallproje......
  • ffmpeg修改文件格式
    http://ffmpeg.org/官网下载windows版本进这个文件夹随便找一个格式的文件我这里以mp4放在这个文件夹里面然后状态栏输入cmd输入下方命令代码ffmpeg......
  • 《Unix/Linux系统编程》第十三章学习笔记
    第13章TCP/IP和网络编程摘要本章论述了TCP/IP和网络编程,分为两个部分。第一部分论述了TCP/IP协议及其应用,具体包括TCP/IP栈、IP地址、主机名、DNS、IP数据包和路由器......
  • C++学习笔记1:类的使用
    [基本数据结构]()[类的使用]()[类的继承和派生]()[面向对象特征之一——多态]()[操作符重载]()[const关键字的使用]()1.类的定义与使用1.1类的定义最简单的类的申明:class......
  • 梦笔记1107
    验证朱的皇帝身份?找到什么刀,宝珠?朱与妃子逗乐,旁边一伙小姑娘在看。我对身边的那个说,各有福报。她说羡慕长发,我说你的也不错。半路有人截,我先带着跑路了,到了个厕所。地上拣到......
  • python Python+ffmpeg 实现视频压缩
    一,ffmpeg应用场景:视频文件过大,需要进行压缩,或降低分辨率,可以使用ffmpeg工具实现。已验证超过2GB大小的视频文件,可以正常压缩。使用方法:可参考如下几篇博文:1.https://w......
  • 双11,用Python爬取4000多条笔记本电脑的销售数据并分析
    双11,用Python爬取4000多条笔记本电脑的销售数据并分析2022年,大部分电子产品的销量都在下滑,比如手机,一方面,产品的创新和提升不足,另一方面,大部分人更愿意把钱存起来,降低生活中......
  • 详解数据预处理和特征工程-特征选择-Embedded嵌入法【菜菜的sklearn课堂笔记】
    视频作者:[菜菜TsaiTsai]链接:[【技术干货】菜菜的机器学习sklearn【全85集】Python进阶_哔哩哔哩_bilibili]嵌入法是一种让算法自己决定使用哪些特征的方法,即特征选择和......
  • 数媒大二上HTML5速成笔记
    HTML5速成笔记0.前言视频教程链接:https://www.bilibili.com/video/BV1vs411M7aT/本笔记的作用:可供有HTML基础的、观看过上述教程的同学快速回忆知识点达到快速复习......