音视频编码实战-------pcm+yuv数据转成MP4

news2024/12/22 16:36:19

文章目录

  • 1.编码流程图
  • 2.相关模块及函数
    • 2.1 编码器相关API
    • 2.2 复用器相关API
    • 2.3 重采样相关API
    • 注意点
  • 简单的编码流程相关代码

1.编码流程图

在这里插入图片描述
在这里插入图片描述

2.相关模块及函数

2.1 编码器相关API

avcodec_find_encoder: 根据编码器ID查找编码器
avcodec_alloc_context3:创建编码器上下文
avcodec_open2:打开编码器

2.2 复用器相关API

avformat_alloc_output_context2:为输出格式创建复用器上下文
avformat_new_stream:创建音视频流
avcodec_parameters_from_context:将编码器上下文中的参数拷贝到音视频流中的编码器参数中AVCodecParameters
avio_open:正式打开输出文件
avformat_write_header:写入头部信息
av_interleaved_write_frame(),对编码后的 AVPacket 进行封装,然后写入文
av_write_trailer:写入视频结尾信息

2.3 重采样相关API

swr_alloc_set_opts:设置重采样配置参数,并且分配重采样器上下文
swr_init:让重采样相关配置生效
swr_convert:对视频帧进行转换
swr_free:释放重采样器上下文

注意点

av_packet_alloc得到的数据必须要设置stream_index,不然stream_index都默认为0了

packet的pts,dts,duration时间基都要转换为对应所在stream的time_base

编码器上下文的flags要设置一下AV_CODEC_FLAG_GLOBAL_HEADER这个参数,不然的话很多视频播放器是播放不了的,尤其是视频流
这个参数是将全局头部信息(SPS,PPS)放在extradata指针中,而不是每一个关键帧中

简单的编码流程相关代码

码云仓库链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/746178.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用wxPtyon和pillow开发拼图小游戏(一)

刚学习python,心血来潮,使用wxPython和pillow开了一个简单的拼图小游戏,大家分享一下 wxPython是Python语言的一套优秀的GUI图形库,在此项目里主要用来开发GUI客户页面;Pillow是一个非常好用的图像处理库,…

Python编译器Pycharm使用技巧

欢迎来到mo的python学习之路 目录 pycharm一些小技巧 1.更换pycharm主题颜色 1.1默认颜色 1.2设置其他颜色 2.汉化 2.1具体操作 3. 创建python包和文件 ,运行python文件 3.1创建python包 3.2创建python文件 3.3运行python文件 3.快捷方式 pycharm一些小技巧 …

2023年11月软考高级网络规划设计师报名时间-报名入口-报名流程

软考高级网络规划设计师报名时间: 广东2023下半年软考高级网络规划设计师报名时间:8月16日9:00-8月24日17:00 江西2023下半年软考高级网络规划设计师报名时间:8月15日9点-9月8日17点 安徽2023下半年软考高级网络规划设计师报名时间&#x…

NTIRE 2023 Challenge on Efficient Super-Resolution——RepRFN:当RFDN遇到重参数化

RepRFN:当RFDN遇到重参数化 0. 简介 NTIRE 的全称为New Trends in Image Restoration and Enhancement Challenges,即“图像复原和增强挑战中的新趋势”,是CVPR(IEEE Conference on Computer Vision and Pattern Recognition)举办的极具影响…

终端关于GPU的命令行

1.了解GPU的资源利用情况: nvidia-smi 2.实时刷新(1秒): nvidia-smi -l 1 3.配合watch命令可实时显示GPU运行状态: watch -n 1 nvidia-smi 其中 1 为刷新的时间间隔。 4.将监控结果写入文件,并且指定…

又是一条慢 SQL 改写,拿捏!

作者分享了一条慢 SQL 分析和优化的过程,总结出切实有效的优化手段。 作者:马文斌 MySQL 爱好者。 本文来源:原创投稿 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 背景 开发同学丢…

苹果M1/M2 Mac正式支持运行Win11

微软与虚拟化软件 Parallels 达成合作,允许在 Apple M1 和 M2 Mac 上的虚拟环境中运行 Windows 11。“Parallels Desktop 版本 18 是一个授权解决方案,用于在其平台上的 Apple M1 和 M2 计算机上的虚拟环境中运行 Arm 版本的 Windows 11 Pro 和 Windows …

算法学习 day23

669. 修剪二叉搜索树 给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代…

【高级程序设计语言C++】初识模板

1. 函数模板1.1函数模板的实例化1.2显示实例化1.3模板参数的匹配原则 2.类模板2.1类模板的定义格式2.2类模板的实例化 1. 函数模板 概念: 函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函…

字符串模式匹配算法(暴力破解、KMP、BM、Sunday)

目录 暴力破解 KMP 算法 构造 next 数组 KMP代码 BM 算法 Sunday 算法 参考资料 又通过leetcode复习了之前的知识:找出字符串中第一个匹配项的下标 暴力破解 你的面前有两段序列 S 和 T,你需要判断 T 是否可以匹配成为 S 的子串。 你可能会凭肉眼立即得出结…

11万字智慧环卫管理平台综合解决方案2023

导读:原文《11万字智慧环卫管理平台综合解决方案word2023》word(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。 目 录 第1章 项目概述 1.1 项目名称 …

Java安全——SSL和HTTPS

Java安全 SSL和HTTPS SSL提供了在TCP套接字之上的对数据进行加密的方法,也是HTTPS协议的基础利用JSSE(java安全套接字扩展包)可以像处理协议一样创建和使用SSL套接字,从而支持HTTPS协议SSL和tcp套接字之间的紧密关系,本身并不是一个加密引擎…

PyTorch预训练和微调:以VGG16为例

文章目录 预训练和微调代码测试结果参考来源 预训练和微调代码 数据集:CIFAR10 CIFAR-10数据集由10类32x32的彩色图片组成,一共包含60000张图片,每一类包含6000图片。其中50000张图片作为训练集,10000张图片作为测试集。数据集介…

16. 替换空格

链接: 链接 题目: 请实现一个函数,把字符串中的每个空格替换成"%20"。 数据范围 0≤0≤ 输入字符串的长度 ≤1000≤1000。 注意输出字符串的长度可能大于 10001000。 样例 输入:"We are happy."输出&#xff…

python简易版的飞机大战(图片资源请自找)

# 引入pygame工具包 import pygame from pygame.locals import * import time import random import sys # 初始化pygame pygame.init() # 创建一个宽480高650的一个画布canvas canvas pygame.display.set_mode((480, 650)) # 加工图片资源 bg pygame.image.load(bg.png)# 背…

Vue3之app.config.globalProperties(定义全局变量)

使用之因 一般我们在vue开发中,常用的功能,接口等等我们都会封装起来,如何每次创建一个组件,想要使用这些封装起来的功能、接口等等都需要先引入,再通过层层调用才可以得到结果,如果我现在一遍需要调用后端…

多旋翼物流无人机节能轨迹规划(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

海外品牌推广:谷歌没收录?这些常见错误你可别犯!

你们是否曾经遇到过这样的情况:你在海外市场努力推广你的品牌,但是发现谷歌搜索结果中竟然找不到你的网站或品牌?别担心,你可能犯了一些常见的错误,让谷歌把你的品牌忽略掉了。让我们来看看这些错误,确保你…

3dsmax图纸怎么加密?

对设计行业来说,公司重要的设计图纸是一个企业非常重要的核心数据是命脉,那么具有如此重要性的3Dmax设计文件怎么才能确保文件的安全,避免竞争对手骗方案或者内部人员有意无意的泄密呢? 相信有很多老板或许都会遇到这样的问题。很…

❤️创意网页:有趣的文字冒险游戏(可以无限拓展)

✨博主:命运之光 🌸专栏:Python星辰秘典 🐳专栏:web开发(简单好用又好看) ❤️专栏:Java经典程序设计 ☀️博主的其他文章:点击进入博主的主页 前言:欢迎踏入…