ffmpeg学习日记3-视频格式和视频编码的关系
文章目录
最近开始接触音视频方面,之前一点也没有接触过,现在是一头雾水,需要摸着石头过河。
首先来了解一下平时见到的rmvb,mp4,等等格式,和我最近了解的h264是什么关系?
概念介绍
首先来了解3个基础概念:视频文件格式(简称:文件格式),视频封装格式(简称:视频格式),视频编码方式(简称:视频编码)
一. 视频文件格式(简称:文件格式):我们知道Windows系统中的文件名都有后缀,例如1.doc,2.wps,3.psd等等。Windows设置后缀名的目的是让系统中的应用程序来识别并关联这些文件,让相应的文件由相应的应用程序打开。例如你双击1.doc文件,它会知道让Microsoft Office去打开,而不会用Photoshop去打开这个文件。所以常见的视频文件格式如1.avi,2.mpg这些都叫做视频的文件格式,它由你电脑上安装的视频播放器关联。你可以随意改扩展名,但是真的对视频一点影响都没有,千万不要以为 avi 改成 mp4,视频就变成 mp4 格式了。
二. 视频封装格式(简称:视频格式):AVI,MPEG,VOB是一种视频封装格式,相当于一种储存视频信息的容器。它是由相应的公司开发出来的。我们可以在自己的电脑上看到的1.avi,2.mpg,3.vob这些视频文件格式的后缀名即采用相应的视频封装格式的名称。
三. 视频编码方式(简称:视频编码):所谓视频编码方式就是指能够对数字视频进行压缩或者解压缩(视频解码)的程序或者设备。通常这种压缩属于有损数据压缩。也可以指通过特定的压缩技术,将某个视频格式转换成另一种视频格式。
总之,即使是同一种视频文件格式,如*.MPG。又分为MPEG-1,MPEG-2 ,MPEG-4几种不同的视频封装格式,就算是同一种视频封装格式,如MPEG-4又可以使用多种视频编码方式。视频的编码形式才是一个视频文件的本质所在,不要简单的通过文件格式和封装形式来区分视频。
以上内容来自:
总结
通过对以上内容的理解,那么当我们想要解码视频的时候,不需要管视频的文件格式,不需要管视频的封装格式,只需要检查视频的编码格式,我们是不是支持,能不能被解码,就可以了。
那么如何查看一个视频文件的是被什么编码生成的,在雷霄骅大神的博客中给除了一种方法,使用MediaInfo工具。
参考:
由于笔者的水平有限, 加之编写的同时还要参与开发工作,文中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果读者有任何宝贵意见,可以加我微信 wencoo824。QQ:1419440391。
技术交流
欢迎加微信,搜索"wencoo824",进行技术交流,备注”博客音视频技术交流“
音视频领域其他技术文章的链接
opengl相关文章
- opengl日记7-ubuntu20.04开发环境opengl拓展glfw和glad环境搭建
- opengl日记8-opengl创建三角形
- opengl日记9-opengl使用纹理示例
- opengl日记10-opengl使用多个纹理示例
- opengl日记11-opengl的transformtions变换示例
- opengl日记12-opengl坐标系统
- opengl日记19-opengl文字渲染-教程示例
- opengl日记23-opengl文字渲染-渐变色-教程示例
- opengl日记25-opengl文字渲染-渲染中文渐变色动画-直线线性运动-教程示例
- opengl日记26-opengl文字渲染-渲染中文渐变色动画-贝塞尔运动-教程示例
- opengl日记27-opengl报错ERROR::SHADER::PROGRAM::LINKING_FAILED
- opengl日记28-opengl之c语言版本的glm库cglm编译使用教程
ffmpeg相关文章
ffmpeg原理相关文章
ffmpeg源码分析相关文章
- ffmpeg学习日记501-源码-parse_loglevel()函数
- ffmpeg学习日记502-源码-ffmpeg_parse_options()函数分析
- ffmpeg学习日记503-源码-transcode()函数分析
- ffmpeg学习日记504-源码-readme汉化
- ffmpeg学习日记506-源码-av_image_copy()函数分析及功能
- ffmpeg学习日记508-源码-ffmpeg --help 汉化
- ffmpeg学习日记509-源码-从ffmpeg 源码提取编码的流程分析
- ffmpeg学习日记512-源码-ubuntu20.04下源码编译
- ffmpeg学习日记513-源码-configure_filtergraph()函数分析及功能
ffmpeg指令相关文章
- ffmpeg学习日记601-指令-视频裁剪,添加bgm合成mp4
- ffmpeg学习日记602-指令-转换视频的分辨率
- ffmpeg学习日记603-指令-获取视频分辨率
- ffmpeg学习日记604-指令-将视频格式转为H264格式
- ffmpeg学习日记605-指令-获取视频的总帧数
- ffmpeg学习日记606-指令-将视频转为全I帧
- ffmpeg学习日记607-指令-将mp4视频转yuv
- ffmpeg学习日记612-指令-转换视频格式
- ffmpeg学习日记612-指令-转换视频格式
- ffmpeg学习日记614-指令-获取文件时长
- ffmpeg学习日记619-指令-透明通道视频相关指令
ffmpeg报错相关文章
libass相关文章
- libass分析1-源码分析-起源-源码编译
- libass分析2-源码分析-示例程序test.c的源码分析
- libass分析3-源码分析-libass中的宏定义分析
- libass分析5-源码分析-ASS_Track结构体分析,ass文件数据是如何存放的
- libass分析6-源码分析-ASS_Renderer结构体分析,ass文件数据是如何存放的
- libass分析8-源码分析-libass处理event中{}的逻辑
c/c++相关文章
linux相关文章
后面都是一些废话,不用看,刷分的
推广一个AI学习网站
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
中国软件行业倡议书
精简软件开发,电脑性能越来越好,打出的程序安装包越来越大,磁盘,内存越吃越多,这不是好现象,手机同理,大家觉得呢,欢迎发表看法,各抒己见。
作者有话说
个人简介:多年工作工程经验,擅长linux下软件开发,qt,ffmpeg音视频二次开发。
欢迎各位叨扰作者,如果有什么项目合作,创业合伙需要研发,网站推广等等,尽管来联系,对于能挣钱的事,作者可是很感兴趣的哦。
关于内卷
劝大家一句,不要内卷,内卷只能害了别人,害了自己。