博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
YUV编码为H264 H264封装为MP4
阅读量:2089 次
发布时间:2019-04-29

本文共 657 字,大约阅读时间需要 2 分钟。

在项目中经常需要进行视频解码、编码和封装等操作,本文主要阐述”YUV编码为H264”和”H264封装为MP4”两个过程。

1 YUV编码为H264

YUV编码为H264有两种方式:

(1)基于FFMPEG调用libx264实现YUV420P的像素数据编码为H.264的压缩编码数据;
(2)直接调用libx264将输入的YUV数据编码为H.264码流文件;
1.1 基于FFmpeg YUV编码为H264
使用FFmpeg编码视频涉及的主要函数:
av_register_all():注册FFmpeg所有编解码器。
avformat_alloc_output_context2():初始化输出码流的AVFormatContext。
avio_open():打开输出文件。
av_new_stream():创建输出码流的AVStream。
avcodec_find_encoder():查找编码器。
avcodec_open2():打开编码器。
avformat_write_header():写文件头(对于某些没有文件头的封装格式,不需要此函数。比如说MPEG2TS)。
avcodec_encode_video2():编码一帧视频。即将AVFrame(存储YUV像素数据)编码为AVPacket(存储H.264等格式的码流数据)。
av_write_frame():将编码后的视频码流写入文件。
flush_encoder():输入的像素数据读取完成后调用此函数。用于输出编码器中剩余的AVPacket。
av_

转载地址:http://yiqqf.baihongyu.com/

你可能感兴趣的文章
GIS基本概念
查看>>
Java文件操作①——XML文件的读取
查看>>
java学习总结之文件操作--ByteArrayOutputStream的用法
查看>>
Java生成和操作Excel文件
查看>>
Java的三种代理模式
查看>>
java静态代理与动态代理简单分析
查看>>
JTS Geometry关系判断和分析
查看>>
阿里巴巴十年Java架构师分享,会了这个知识点的人都去BAT了
查看>>
Intellij IDEA 使用技巧一
查看>>
idea如何显示git远程与本地的更改对比?
查看>>
Git 分支 - 分支的新建与合并
查看>>
git创建与合并分支
查看>>
23种设计模式介绍以及在Java中的实现
查看>>
如何把本地项目上传到Github
查看>>
Git的使用--如何将本地项目上传到Github
查看>>
zookeeper客户端命令行查看dubbo服务的生产者和消费者
查看>>
intellij idea 相关搜索快捷键
查看>>
oracle查看数据库连接池中最大连接数和当前用户连接数等信息
查看>>
oracle中创建同义词(synonyms)表
查看>>
建立DB-LINK和建立视图
查看>>