背景知识ffmpeg是一款领先的流媒体处理框架,支持编码,解码,转码等功能并可以在linux, Mac OS X, Microsoft Windows编译运行,用它做播放器的有:ffplay,射手播放器,暴风影音,QQ影音,用它做转码的有:格式工厂,总之:ffmpeg功能十分强大。
视音频编码技术基础
>>>生活中的视音频技术
我们日常生活中看到的视频有不同后缀如:avi,rmvb,mp4,flv,mkv等等,这些后缀的格式就是视频的封装格式(把音频和视频打包成一个文件的规范)文件的后缀看不出具体视频的视音频编码标准,我们引入MediaInfo工具:
可以看出high_2.mp4采用的是MPEG-4(mpeg4是一个“标准合集”(ISO/IEC 14496),包含了视频编码、音频编码、封装格式等一系列标准)标准的封装格式为mp4,采用了h.264视频的压缩编码标准,这个工具可以非常详细查看视频文件的各种你想要的信息比如分辨率码率帧率等。比特率bit/b 二进制中最小单位,要么0要么1,单位是:“位每秒”也叫bps,期中b就是Byte,就是比特也就是字节1个字节(1B)在计算机中占8位 1Byte=8bits,1K字节=1024B*8bpsb:比特位(bit)码率指单位时间内使用的数据流量也叫码率,分辨率相同,码率越大也就越清晰(标清,高清)例:2864Kbps(每秒计算机走了2864*1024*8这么多个比特位,也就是每秒需要2864k比特)帧率
(Frame rate)是用于测量显示帧数的量度。所谓的测量单位为每秒显示帧数(Frames per Second,简称:FPS)或“赫兹”(Hz)。此词多用于影视制作和电子游戏,所以fps越高画面刷新频率更快,也就感觉更流畅,我们在游戏中fps很低就会很卡这就是期中为什么卡的原因。
>>>直播中的性能指标基础
延迟:稳定网络下 发送和接受的时间差影响延迟的因素:1,  转发环节越多延迟越大2,  物理上的距离 (偏远山区等考虑光钎的传输)3,  由于 RTMP/HLS 是基于 TCP 之上的应用层协议,TCP 三次握手,四次挥手,慢启动过程中的每一次往返来回,都会加上一次往返耗时 ( RTT ),这些交互过程都会增加延迟。卡顿率:单位时间内播放的卡顿次数为卡顿率影响卡顿的因素:1,  造成卡顿的因素有可能是推流端发送数据中断,2,  也有可能是公网传输拥塞或网络抖动异常3,  也有可能是终端设备的解码性能太差卡顿频次越少或没有,则说明用户体验越好。首屏耗时:指第一次点击播放后,肉眼看到画面所等待的时间。技术上指播放器解码第一帧渲染显示画面所花的耗时。通常说的 “秒开”,指点击播放后,一秒内即可看到播放画面。首屏打开越快,说明用户体验越好。
Ffmpeg基本命令
-L license
-h 帮助-f fmt 强迫采用格式fmt-i filename 输入文件-y 覆盖输出文件-b:v 设置码率-s 设置分辨率-re 按着帧率发送,-c 设置编码器 当为 copy:指复制编码流-c:v  libx264  指定编码格式为h264-acodec aac(音频编码用AAC)-ac 2(声道数1或2)-ar 24000(声音的采样频率,好像PSP只能支持24000Hz)-ab 128(音频数据流量,一般选择32、64、96、128)-vol 200(200%的音量,自己改)
示例推流地址:rtmp://ps0.xxx.com/xxx  看流地址:http://pl0.xxx.com/xxx/xxx.flv                     rtmp://ps0.xxx.com/xxx1. ffmpeg推流命令ffmpeg -re -i localFile.mp4 -c copy -f flv 推流的过程中会不断打印 视频流相关的信息
2. 看流命令ffplay http://pl0.xxx.com/xxx/xxx.flvffplay 是ffmpeg 内嵌的一个播放器 当然你也可以用vlc输入这个流地址来观看
3. -c:v 命令用来转码ffmpeg转码命令ffmpeg  -i  D:/test.mov -c:v libx264 -strict -2 D:/test.mp4 (目前我们最好用mp4格式上传所以我们有时候需要最视频转码 ,把D盘下.mov的视频文件 转成 h264编码格式的test.mp4)
4. -b:v 命令用来修改码率ffmpeg 修改视频码率ffmpeg -i test.mp4 -b:v 1500k testk.mp4  (修改test.mp4 的码率为 1500k 新文件为testk.mp4)
5. -s 用来修改分辨率 ffmpeg 修改视频分辨率 :ffmpeg -i D:\test\test.mp4 -s 800*600 D:\test\testf.mp4 (修改视频文件test.mp4 分辨率 1280*720 修改为:800*600 新文件名为testf.mp4)6. -r 用来修改帧率 ffmpeg 修改视频帧率:ffmpeg --i D:\test\test.mp4--r 25 output D:\test\testr.mp4 (修改视频文件test.mp4 的帧率为 25 新文件名为 testr.mp4)
7. ffmprobe 命令可以查看 流的 音频和视频信息 非常详细

ffmpeg基础的更多相关文章

  1. FFmpeg基础一

    来源:http://blog.csdn.net/chance_yin/article/details/10323441 一.研究数字多媒体,首先要了解几个基本术语(ffmpeg的相关文档几乎都是英文的 ...

  2. FFmpeg Basics学习笔记(1)ffmpeg基础

    1 FFmpeg的由来 FFmpeg缩写中,FF指的是Fast Forward,mpeg是 Moving Pictures Experts Group的缩写.官网:ffmpeg.org 编译好的可执行 ...

  3. FFmpeg基础库编程开发学习笔记——视频常见格式

    声明一下:这些关于ffmpeg的文章仅仅是用于记录我的学习历程和以便于以后查阅,文章中的一些文字可能是直接摘自于其它文章.书籍或者文献,学习ffmpeg相关知识是为了使用在Android上,我也才是刚 ...

  4. FFmpeg基础知识之————H264编码profile & level控制

    H.264有四种画质级别,分别是baseline, extended, main, high: 1.Baseline Profile:基本画质.支持I/P 帧,只支持无交错(Progressive)和 ...

  5. ffmpeg基础与编译_在VS2008下调试output_example.c(详细步骤)

    注意:这个是编译Debug版本的.必要资源:FFMPEG SDK 3.2(已经编译好的,可以去http://www.bairuitech.com/html/ruanjianxiazai/ffmpeg/ ...

  6. FFmpeg基础库编程开发学习笔记——音频常见格式及字幕格式

    声明一下:这些关于ffmpeg的文章仅仅是用于记录我的学习历程和以便于以后查阅,文章中的一些文字可能是直接摘自于其它文章.书籍或者文献,学习ffmpeg相关知识是为了使用在Android上,我也才是刚 ...

  7. ffmpeg基础使用

    https://www.jianshu.com/p/ddafe46827b7  

  8. 【转】FFmpeg 基本用法

    FFmpeg FFmpeg 基本用法 本课要解决的问题 1.FFmpeg的转码流程是什么? 2.常见的视频格式包含哪些内容吗? 3.如何把这些内容从视频文件中抽取出来? 4.如何从一种格式转换为另一种 ...

  9. ffmpeg基本用法

    FFmpeg FFmpeg 基本用法 本课要解决的问题 1.FFmpeg的转码流程是什么? 2.常见的视频格式包含哪些内容吗? 3.如何把这些内容从视频文件中抽取出来? 4.如何从一种格式转换为另一种 ...

随机推荐

  1. 利用ffmpeg给小视频结尾增加logo水印

    背景 1.app有类似微信拍摄小视频功能,时长上限8s,视频文件保存在第三方云存储,app直接上传,后端数据库只记录视频的存放地址. 2.最近一次功能迭代,增加了小视频下载功能,小视频有可能在别的社交 ...

  2. 黄聪:iis7.5 偶尔出现500服务器错误-内部服力器错误

    搞了半天,发现是PHP映射模块出错了,最新的PHP7处理模块不行,换成5.6的就好了

  3. Unity代码设置shader属性

    主要是用到了Material.SetTexture这个方法,具体可以参考如下: 举个例子,比如我想用代码动态控制Skybox/Cubemap下的Cubemap,可以这样写: public Cubema ...

  4. python 类变量和实例变量

    super(cls, inst) 获得的是 cls 在 inst 的 MRO 列表中的下一个类.  实例的属性存储在实例的__dict__中,类属性和方法存储在类的__dict__中.查找属性时,先检 ...

  5. css不常用重要属性

    超出省略号:display:block;white-space:norwrap;overflow:hidden;text-overflow:ellipsis; white-space:norwrap/ ...

  6. DbEntry.Net.v3.5 快速教程

    1.DbEntry 介绍 EN&Download——[DbEntry Framework下载][Tutorials For Version 3.5] CN&Summary:总体特性的介 ...

  7. [DFNews] Cellebrite UFED Physical Analyzer 3.8

    Cellebrite 两周前正式发布了UFED设备所附带的Physical Analyzer和Logical Analyzer软件,更新后版本为3.8 下载地址已更新至置顶资源下载页面. 主要更新如下 ...

  8. Google Protocol Buffer 的使用和原理[转]

    本文转自: http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/ Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构 ...

  9. 交换机做Channel-Group

    core1#conf tEnter configuration commands, one per line.  End with CNTL/Z.core1(config)#inter range g ...

  10. 软件调试——IA-32 保护模式下寄存器一览

    最近在看张银奎先生的<调试软件>一书,想将关键的技术记录下来,以便日后查阅,也分享给想看之人吧. 1 通用寄存器 EAX,EBX,ECX,EDX:用于运算的通用寄存器,可以使用AX,BX等 ...