视频格式、编码介绍

今天写一个网站上传视频的视频时候遇到了格式问题,于是了解了一番视频格式、编码的相关概念,这里总结一下。

视频格式与视频编码的区别

首先要明确的是,视频格式与视频编码其实是两个概念。

AVIMP4其实都是视频格式,而H.264H.265都是视频编码格式

H.264也叫做AVCH.265也叫做HEVC。这个可以记一下,因为经常被提到,其实说的都是同一个东西。

容器格式

视频格式其实就是一种容器格式,用以组织多种类型的数据流。像ZIP就是归档文件(archive files)的容器格式,而上面刚提到的MP4则是用于多媒体播放的容器格式。

一般的视频容器格式就是包含不同格式的音频数据,但是高级一点容器格式还可以包含多条音频、视频流,字幕,元数据(比如音频、视频的编码格式),以及音视频同步信息这些。

此外,虽然说容器格式就是包含不同的数据流,但是大部分容器格式是为了特定的数据需求而设计的,所以容器格式名就已经隐含了该文件存储的数据该用什么软件打开,比如MP4肯定就是视频文件。

上面大部分是参考的容器格式的维基百科,这里附上链接:Container format

进一步了解视频编码

上面说到,容器格式只是指定了多种类型的数据该怎么存储,但是并没有限定数据的类型,所以即使是同一视频格式的文件,里面的视频编码格式也可能完全不同。 这就造成有可能都是MP4的文件,但是在浏览器上有一些可以播放,有一些却不行,因为他们的视频编码格式不同。

由于一些历史原因(主要是因为有些视频编解码格式有专利费,即 你去使用人家发明的编解码工具是要付费的),各大浏览器厂商们并没有统一支持的视频编码格式。各大浏览器厂商支持如下:

上图可以看到对于MP4这一中类型的视频格式,这些浏览器只支持H264AAC编码的视频,那么如果你上传的一条由H.265编码的视频,即使是.mp4后缀,也无法播放,因为浏览器并不支持。

查看视频编码格式

通过FFmpeg工具,我们可以查看对应视频文件的相关数据:

FFmpeg是一个很常用的视频处理工具,有许多强大的功能,这里附上下载链接:FFmpeg

ffprobe test.mp4 -show_streams -select_streams v -print_format json
# test.mp4可以改成对应文件名

部分结果如上图。我们可以看到大部分键都含有codec关键字,这是一个coder和decoder合成词,是编码解码器的意思,这里主要用来表示该视频编码格式是什么,我们可以看到是h264

另外我们还可以看到一个codec_tag的键,它是用来补充codec信息的一个信息,因为通常一个codec有许多信息,这里codec_tag用来表示视频编码的封装格式,我们可以看到是avc1。我今天上传视频的视频的时候就是因为视频编码格式是h264而不是avc1而导致浏览器无法播放。

关于avc1h264的区别,可以看这个答案:avc1和h264的区别

切换codec_tag

对于上面这种情况,FFmpeg工具也能搞定,将指定H.264视频的tag转换为avc1:

ffmpeg -i source.mp4 -c:v copy -tag:v avc1 -c:a copy target.mp4
# source.mp4和target.mp4可以改成对于文件名

参考链接

  1. Codec Tag是什么
  2. FFmpeg 视频处理入门教程
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
本人搜集的5款视频编码信息查看工具 AVIcodec_1.2.0.113 光是看扩展名是无法知道影片的正确的编码格式的,特别像DivX这样的高品质、高压缩比的影片格式出现后。除了原本未压缩的AVI影片外,目前使用这样的扩展名格式影就还有DivX、XviD等等,而使用AVIcodec来检测影片的正确压缩格式是较简单的方法,让你知道目前计算机上还少装了什么样的影音编码器。 当然,AVIcodec 也提供了已安装编码器的检测功能,让你知道目前在计算机上已经安装了什么样的编码器。使用AVIcodec 侦测影片格式的方法相当简单,只要在AVIcodec 中加载要检测的影片,即可在窗口中看到完整的影片信息,包括编码方式、影片品质、档案大小等等,当然,影片无法正常的原因也就一目了然。 ------------------------------------------------------------------------ GSpot_2.70 GSpot 能帮你检查多媒体文件所需的 codec,以及关于文件的详细数据,如文件中影 / 音数据所占的比例,文件是如何制成的(影 / 音)等等。 ------------------------------------------------------------------------ InstalledCodec_1.15 不论你是采用幻想影音这类打包式的编解码器还是自己单独下载安装,都要清楚已经安装了哪些,InstalledCodec就是专门用于这个用途的软件。但是光查看怎么行,对于某个引起冲突的解码器我们还能采取措施将其禁用,保证它们之间的兼容性 ------------------------------------------------------------------------ MediaInfo_0.7.30 MediaInfo 用来分析视频和音频文件的编码和内容信息,是一款是自由软件 (免费使用、免费获得源代码,许可协议:GNU GPL/LGPL)。 MediaInfo可以获得多媒体文件的哪些信息? 内容信息:标题,作者,专辑名,音轨号,日期,总时间……    视频编码器,长宽比,帧频率,比特率……    音频:编码器,采样率,声道数,语言,比特率……    文本:语言和字幕   段落:段落数,列表    DivX, XviD, H263, H.263, H264, x264, ASP, AVC, iTunes, MPEG-1, MPEG1, MPEG-2, MPEG2, MPEG-4, MPEG4, MP4, M4A, M4V, QuickTime, RealVideo, RealAudio, RA, RM, MSMPEG4v1, MSMPEG4v2, MSMPEG4v3, VOB, DVD, WMA, VMW, ASF, 3GP, 3GPP, 3GP2 MediaInfo支持哪些文件格式? 视频:MKV, OGM, AVI, DivX, WMV, QuickTime, Real, MPEG-1, MPEG-2, MPEG-4, DVD (VOB)... (编码器:DivX, XviD, MSMPEG4, ASP, H.264, AVC...)    音频:OGG, MP3, WAV, RA, AC3, DTS, AAC, M4A, AU, AIFF...    字幕:SRT, SSA, ASS, SAMI... multiplexer, demuxer, mixer, muxer, video decoder, audio decoder, PAL, NTSC MediaInfo有哪些主要功能和特点?   支持众多视频和音频文件格式   多种查看方式:文本,表格,树形图,网页……   自定义查看方式   信息导出:文本,CSV,HTML……   三种发布版本:图形界面,命令行,DLL(动态链接库)   与Windows资源管理器整合:拖放,右键菜单   国际化:有多种界面语言供选择   (软件界面)轻松实现本地化 (需要志愿者翻译语言文件) ------------------------------------------------------------------------ VideoInspector 2.2.4.123 好用的影音编码检测工具,可以检测出本机播放某影片缺少哪些视频编码器、音频编码器。透过它,你可以知道为什么视频文件会没有声音或不能正常播放,它将会帮助你安装所需要的解码软件,同时它还能检查你的系统中哪几种编码可用,支持批量检测,并可导出检测结果。对于喜爱在网上下载电影欣赏的网友来说,Vide

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值