MP4 视频“只闻其声,不见其人”,是怎么回事呢?
艾瑞巴蒂大家好,我二狗子又来啦!这段时间关于疫情的好消息不断,各个地区的疫情都得到了有效的控制,做到了新增病例个位数增长甚至连续多天零增长!这不,二狗子也终于可以出村回到大城市上班啦!由于要坐很久的火车,二狗子不光备好了口罩和手套,申请好了绿码,也下载了自己最爱的电视剧《回家的诱惑》准备消磨时间,温习一下“品如的衣柜”。想到能和洪世贤度过这漫长的几个小时,二狗子已经迫不及待了!

上了火车找好位置,二狗子急急忙忙地打开电脑,双击了下载的 MP4 视频,结果播放却出现了问题。所有的视频都只听得到声音却看不到画面,这可把二狗子气坏啦。

到了终点站,二狗子气冲冲地下了火车坐上地铁,在地铁工作人员检查绿码的时候也没有好脸色 —— 所幸因为带了口罩并没有影响到别人。回到家,二狗子立刻开始检查为什么看不到画面的原因。经过搜索排查基本可以确认是视频的编码格式问题,也就是浏览器不支持这个格式。为了解决这个问题首先需要了解一下什么是视频编码。
什么是视频编码?
视频编码是指压缩和改变视频内容格式的一个有损的过程目标是减少占用空间。在压缩过程中会抛弃与视频相关的信息,而在解压缩以进行回放时会创建原始的近似值。压缩越多,抛出的数据越多,近似值与原始数据相比越差。
如何查看视频编码?
当前市面上有非常多的软件可以查看视频编码,二狗子要给大家推荐的是名叫 FFmpeg的一款软件。使用方法非常简单,完成安装后,只需要输入命令ffmpeg -i test.mp4,即可获得视频的各类信息。

其中视频编码格式查看的是 Stream(Video) 字段。
当前互联网上的大部分视频播放器或者浏览器都支持的编码是 H.264、H.265 或者VP9 等,如果一个视频需要正常播放比较建议大家将视频转码为以上三类。
有些同学可能会问:“这些编码格式有什么区别呢?”接下来二狗子给大家做个详细对比
H.264、H.265 和 VP9
H.264 vs H.265
先来说说 H.264 ,它是一种视频压缩标准,因其是蓝光光盘的一种编解码标准而着名,同时也是一种被广泛使用的高精度视频录制、压缩和发布格式。H.264 相较于以前的编码标准有着一些新特性,如多参考帧的运动补偿、变块尺寸运动补偿、帧内预测编码等,通过利用这些新特性,H.264 比其他编码标准有着更高的视频质量和更低的码率。
H.265 则是新一代视频压缩标准,主要面向高清数字电视以及视频编解码系统的应用。
那么 H.264 和 H.265 有什么区别呢?H.265 能在有限带宽下传输更高质量的网络视频,只需原先 H.264 编码的一半带宽即可传输相同质量的视频。同时,4K 视频的数据量是高清的 4-8 倍,需要更高效率的压缩编码算法,而 H.265 同时支持 4K(4096×2160)和 8K(8192×4320)像素的超高清视频,编码效率是 H.264 的两倍。
H.265 vs VP9
VP9 是由 Google 开发的开放式、无版权费的视频编码标准,在开发初期曾经被命名为 Next Gen Open Video。目前互联网上使用最多的视频编码标准就是无版权费的 VP9。与 H.265 相比于 H.264 一样,VP9 与上一代视频编码标准相比在编码效率上均提升了 50% 。
那么 VP9 和 H.265 相比,两者孰优孰劣呢?二狗子从 8 个方面给大家比较一下:
压缩效率:H.265 比 VP9 节省0.6%至38.2%的比特率。
编码质量

上图为 H.265 与 VP9 编码质量的对比测试,数值越小,则表示编码质量越好。使用 H.265 编码的视频在低比特率下具有比VP9更好的视觉质量。对于更高的比特率,VP9 可能比 H.265 更好。
回放CPU:VP9 的 CPU 使用率优于 H.265 。
编码时间:H.265 比 VP9 花费更少的编码时间。
兼容性:Chrome,Opera,Firefox和其他基于Web的高清视频流以及三星,LG,英特尔,索尼,夏普等都广泛支持VP9。H.265 几乎被所有 4K 电视采用,VOD媒体播放器和流媒体的主要提供商也采用了它,也与Apple一样。
带宽和文件大小:H.265 节省了更多的比特率,即与 VP9 相比,文件大小更小。
费用:VP9 是开放的,并且免版税,而 H.265 不是。
通过对比可以看出,H.265 和 VP9 的性能是相差不大的,尽管 VP9 可以免费使用,但在实际推广中,微软、苹果等公司不愿看到 VP9 一家独大,其他互联网厂商也不希望主流视频编码格式被垄断,因此目前 VP9 主要在 Google 自家的产品中得到支持,其他大厂使用的并不多。相比而言 H.265 在商业应用中更为广泛。
介绍了这么多,可能有小伙伴有点等不及了,到底如何让那些"只闻其声,不见其人"的 MP4 文件在浏览器中正常播放呢?
又拍云音视频转码
我们已经明白无法播放的主要原因是视频编码问题,因此按照正常思路只要修改 MP4 文件的视频编码格式,就可以正常播放了。
当前市面上有许多转码的产品比如格式工厂、FFmpeg 等,可以将 MP4 文件转换为浏览器支持的视频编码格式,但是这些需要逐个操作,遇到那种几百上千集的,比如身体缩小头脑依然灵活的姓柯名南的侦探故事,就会因为太多而丧失转码欲望,但是放弃不看又让人无法割舍,那么有么有什么办法能够自动而且大量转码呢?
就让又拍云来帮你吧!又拍云 H.265 视频自适应方案集成了视频上传、视频存储、视频编码(转码)、视频分发适配、视频解码等功能:
- 视频上传转码:使用又拍云存储,可以满足视频上传加速、转码、存储的需求。在使用云存储的基础上,用户选择将上传的 H.264 编码的视频,同步转为 H.265 编码的视频存储;

视频异步转码:针对已存储在又拍云上的 H.264 编码的视频,通过又拍云异步转码服务,可转为 H.265 视频存储,同时保留 H.264 视频副本;
H.265分发适配:在又拍云 CDN 层面提供 H.265 分发适配功能,可对不同的客户端进行智能识别,在用户访问时响应不同的编码的视频资源。
一键式全自动处理,省时又省力,看剧好帮手,小伙伴们还不快来使用体验一下?

往期技术文章都在微信同步分享,可以添加微信:upyun0001
推荐阅读
MP4 视频“只闻其声,不见其人”,是怎么回事呢?的更多相关文章
- 工具---《.264视频 转成 MP4视频》
<.264视频 转成 MP4视频> 安装了“爱奇艺万能播放器”可以打开.264视频,但是opencv却不能直接读取.264视频,还是需要想办法“.264视频 转成 MP4/avi视频”. ...
- 使用原生node.js搭建HTTP服务器,支持MP4视频、图片传输,支持下载rar文件
前言 如何安装node.js,如何搭建一个简易的http服务器我这里就不再赘述了,不懂的同学可以先去学习一下.当然了,我写的也就属于简易版的增强版,大家有什么高见的欢迎提出,然后进入正题. 目录结构 ...
- Chrome使用video无法正常播放MP4视频的解决方案
H5的video标签让前端开发者用一行代码就可以实现视频和音频的播放,然而,有时候我们会突然发现,某些Mp4格式的视频在Chrome下居然无法正常播放?这究竟是什么原因呢?这篇文章主要分析了部分Mp4 ...
- 第15.40节、PyQt(Python+Qt)实战:moviepy实现MP4视频转gif动图的工具
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.引言 在写<第15.39节.splitDockWidget和 ...
- 闻其声而知雅意,基于Pytorch(mps/cpu/cuda)的人工智能AI本地语音识别库Whisper(Python3.10)
前文回溯,之前一篇:含辞未吐,声若幽兰,史上最强免费人工智能AI语音合成TTS服务微软Azure(Python3.10接入),利用AI技术将文本合成语音,现在反过来,利用开源库Whisper再将语音转 ...
- atitit.mp4 视频文件多媒体格式结构详解
atitit.mp4 视频文件多媒体格式结构详解 1. 一.基本概念1 2. MP4文件概述2 3. mp4是由一个个“box”组成的,2 4. 典型简化mp43 5. Fragments5 6. r ...
- 2017年05月10日记一次微项目投产 | 安卓版微信内置浏览器不能解析gzip压缩过的mp4视频的问题
前言 今天投产了一个小项目,一个很简单的H5,有播放视频功能,使用了videojs插件. 之前也做过数个视频播放,视频的转压都按照既定流程进行,文件放到FTP后,iphone和安卓机测试下来都没有问题 ...
- cocos2d-x 3.0 播放MP4视频
猴子原创,欢迎转载.转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢! 原文地址: http://www.cocos2dev.com/?p=545 很久以前写的一个2dx播放 ...
- 嵌入式Linux下MP4视频录制库MP4V2移植和简单介绍
**************************************************************************************************** ...
- IIS6/IIS7环境下实现支持mp4视频随意拖动、预览播放、边下载边播放
前几天,一客户需要在IIS环境下实现MP4视频可以随意拖动观看,边下载边播放.一看这要求,IIS本身是无法实现,想着应该需要用插件,于是GG一番,还真找到这样的插件,此组件为H264-Streamin ...
随机推荐
- HDL刷题:Count clock
原题链接 要写一个12小时的时钟. 由题目得知,reset信号的优先级最高,其次是enable,这里很好实现. 我的思路: 写了一个4位的bcd计数器,并实例化了4个,对ss与mm的[7:4]与[3: ...
- 城院导航小程序软件需求规范(SRS)(三期作业汇总)
城院导航小程序软件需求规范(SRS) 1. 引言 1.1 目的 小帅小美们注意看!! 公主请批阅! 王子请批阅! 本文档描述了城院导航小程序的功能和非功能需求.它旨在为开发团队.导师和利益相关者提供清 ...
- Guava Preconditions类的各种用法
公众号「架构成长指南」,专注于生产实践.云原生.分布式系统.大数据技术分享. Guava Preconditions类 提供静态方法列表,用于检查是否使用有效参数值调用方法或构造函数.如果前提条件失败 ...
- [P7880][Ynoi2006] rldcot
[Ynoi2006] rldcot 题目描述 给定一棵 \(n\) 个节点的树,树根为 \(1\),每个点有一个编号,每条边有一个边权. 定义 \(dep(x)\) 表示一个点到根简单路径上边权的和, ...
- vue-test4 -------组件之间的数据传递
<template> <h3>CompA</h3> <component-b :onfun="dateFun"></compo ...
- 【论文阅读】HTTP 流量和恶意 URL 的异常检测
Part 1关于论文 基本信息 题目:HTTP 流量和恶意 URL 的异常检测 源码:sec2vec源代码 摘要 在本文中,我们将展示如何利用自然语言处理(NLP)中已知 的方法来检测 HTTP 请求 ...
- DataGrip给DateTime类型字段赋值当前系统默认时间
CURRENT_TIMESTAMP alter table 表名 modify column update_time DATETIME NULL DEFAULT CURRENT_TIMESTAMP O ...
- SpringBoot整合阿里云OSS
1.创建一个service_ossspringboot项目 2.导入相关依赖 ...其他的依赖大家自行导入 <!-- 阿里云oss依赖 --> <dependency> < ...
- JXNU acm选拔赛 不安全字符串
不安全字符串 Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other) Total Submis ...
- CSP_J