所谓视频,其实就是将一张一张的图片连续的放出来,就像放幻灯片一样,由于人眼的惰性,因此只要图片的数量足够多,就会觉得是连续的动作。 所以,只需要将一张一张的图片保存下来,这样就可以构成一个视频了。

但是,由于目前网络和存储空间的限制,直接存储图片显然不可行。举个例子:在视频聊天中,假定从摄像头采集的图片每张大小200KB,每秒钟发送大概15帧图片,这样每秒钟需要的流量就需要3M(意味着需要24M的宽带),显然这个要求太高了。

于是,就可以考虑将这些图片压缩来减少大小。并且视频基本上都是连续的两帧图像差别不是太大。因此,在记录下第一张完整的图像之后以后的每张图像都是只记录下和上一帧图像不一样的地方,直到出现了差别很大的图像,才重新记录一帧完整的图像(这个完整的图像就叫做关键帧)。这样就可以很大程度上减小空间了。

编码格式这么多,我们应该选择哪种呢? 经过查阅资料目前比较好的选择是H.264,因此,只需要了解H.264就行,我们后续的项目也是全部使用H.264。H.264的细节不是三两下能说清楚的,本文不做解释
介绍下H.264有哪些优势:

  1. 低码率(Low Bit Rate):和MPEG2和MPEG4
    ASP等压缩技术相比,在同等图像质量下,采用H.264技术压缩后的数据量只有MPEG2的1/8,MPEG4的1/3。
  2. 高质量的图像:H.264能提供连续、流畅的高质量图像(DVD质量)。
  3. 容错能力强:H.264提供了解决在不稳定网络环境下容易发生的丢包等错误的必要工具。
  4. 网络适应性强:H.264提供了网络抽象层(Network Abstraction
    Layer),使得H.264的文件能容易地在不同网络上传输(例如互联网,CDMA,GPRS,WCDMA,CDMA2000等)。
  5. 高压缩率,H.264的压缩比达到惊人的102∶1。

FFMpeg视频格式讲解相关推荐

  1. ffmpeg 视频格式转换和宽高转换 制作自己想要的数据格式

    ffmpeg 视频格式转换和宽高转换 制作自己想要的数据格式 命令如下: ffmpeg -y -i Titanic.mkv -s 640*480 out.h264 运行效果: 一般的 使用 ffmpe ...

  2. ffmpeg视频格式解读

    视频格式 -,视频产生到文件格式封装 , 镜头->CCD->编码->记录. 1. CCD,编码部分 拍摄的画面转变为RGB像素->YUV像素->色彩采样(YUV4:4:4 ...

  3. [转载]流行视频格式讲解

    *. MPEG/.MPG/.DAT MPEG也是Motion Picture Experts Group 的缩写.这类格式包括了 MPEG-1, MPEG-2 和 MPEG-4在内的多种视频格式.MP ...

  4. php 视频上传 FFMpeg 视频格式转码

    啥也不说先上源码,安装不会的可以看我的另一篇文章或者查看专栏https://blog.csdn.net/qq_29099209/article/details/79720723 <?phpnam ...

  5. ffmpeg 视频格式转换命令记录

    1.avi转nv12 ffmpeg -i source.avi -f rawvideo -pix_fmt nv12 output.nv12ffmpeg -i source.avi -f rawvide ...

  6. ffmpeg视频格式转换笔记

    将YUV转换成h264 ffmpeg -s 176x144 -pixel_format yuv420p -i 176x144_pea_result.yuv -an -vcodec libx264 -b ...

  7. 学习笔记(2):基于NDK、C++、FFmpeg的android视频播放器开发实战-音视频基础知识Mpeg4封装格式音视频编码格式讲解...

    立即学习:https://edu.csdn.net/course/play/7417/151027?utm_source=blogtoedu 封装:将音视频从文件中读出来 解码:解压出来,转换成显卡支 ...

  8. php视频格式转换---------ffmpeg-php扩展与ffmpeg.exe安装与使用

    HP转换视频格式这个问题, 找了一下午的ffmpeg-php扩展的安装与使用方法,都是千篇一律转载的. 下面是我整理的步骤,希望能帮助大家这个问题. 1.下载ffmpeg-php扩展包和ffmpeg. ...

  9. 【FFmpeg】使用 FFmpeg 处理音视频格式转换流程 ( 解复用 | 解码 | 帧处理 | 编码 | 复用 )

    FFmpeg 系列文章目录 [FFmpeg]Windows 搭建 FFmpeg 命令行运行环境 [FFmpeg]FFmpeg 相关术语简介 [FFmpeg]FFmpeg 相关术语简介 二 [FFmpe ...

  10. linux deepin使用FFmpeg处理视频格式、尺寸、播放速度

    背景 deepin下的视频处理.剪辑软件可选择的比较少,没有Window下常用的PR.AE.格式工厂等,达芬奇由于依赖的问题不是很好安装.我们可以充分利用deepin系统自带的FFmpeg,完成常用的 ...

最新文章

  1. python集合中的元素是否可以重复_python中集合中的元素是否可以重复
  2. mysql collation utf8_mysql数据库 表字段 的collation utf8_unicode_ci
  3. 【技术综述】视频分类/行为识别研究综述,从数据集到方法
  4. SQL入门(3):定义约束/断言assertion/触发器trigger
  5. usb大容量存储设备驱动_usb无法识别怎么办 如何解决usb识别故障【详细步骤】...
  6. 前端学习(2319):angular2概述
  7. 二维码的实现原理和实现过程[纠错码编码]
  8. 汽车故障诊断仪的原理与作用
  9. 别慌,你的数据或许还有救!(内整理有大量数据恢复软件)
  10. 天融信数通小百科:无线AP的Soul mate—POE交换机
  11. Android Apk签名修改V1,V2,V3,V4
  12. Guake Terminal ── linux下完美帅气的终端 (转)
  13. git学习之时光穿梭机
  14. golang坑之 'godoc' 不是内部或外部命令,...
  15. JSP校园运动会管理系统
  16. Redux 替代品 Zustand
  17. 单片机外围电路设计之二:电容
  18. 实现 JSON.parse
  19. PADS原理图与PCB转到AD或者高版本PADS转出文件给低版本使用
  20. 蘑菇街2016招聘笔试

热门文章

  1. wps画流程图交叉弧形_wps画的流程图打印不清晰|wps怎么绘制出立体流程图?wps绘制出立体流程图的方法...
  2. 机械设计基础课程设计详细步骤(说明书)
  3. git 设置全局代理_git 代理配置
  4. 【C语言视频教程完整版】从入门到进阶,适合C语言初学者计算机考研党考计算机二级大一大二学生学习观看~~~
  5. Windows上更换鼠标指针图标
  6. URLDecoder
  7. php 百度地图根据经纬度获取地址,使用百度地图api根据经纬度获取位置
  8. java 后端开发好吗_Java语言哪里好?为什么那么多人选择Java后端开发?
  9. redis的管理和监控工具treeNMS
  10. python好友信息管理系统