背景知识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. Ubuntu16.04+Tensorlow+caffe+opencv3.1+theano部署

    1.首先安装Ubuntu16.04系统. 2.安装显卡驱动 在官网上下载最新的NVIDIA-Linux-x86_64-375.26.run驱动.然后 Ctrl+Alt+F1进入控制台,输入 sudo ...

  2. C#将exe运行程序嵌入到自己的winform窗体中

    以下例子是将Word打开,然后将它嵌入到winform窗体中,效果如下图:C将exe运行程序嵌入到自己的winform窗体中 - kingmax_res - iSport注意:该方法只适用于com的e ...

  3. 关于FPGA学习路线

    1.参考FPGA厂商的参考资料,将某系列FPGA所有芯片资料下载下来,有针对性的做参考. 2.参考FPGA厂商开发板以及相应的参考设计,在开发板里有众多的外围接口电路,基本涵盖了常用的应用场合.同时也 ...

  4. Spring以及SPringmvc相关问题: ServletContext -父子容器

    总结如下: 明确了Servlet规范中ServletContext的作用和意义.此外明确一个Tomcat中多个web应用,每个人web应用有唯一的一个ServletContext(全局上下文).[例子 ...

  5. JMeter Http测试计划

    一.新建Http测试计划 二.添加线程组 设定5个线程,循环2次 三.添加Http请求 以百度为例: 四.添加监听:察看结果树 五.执行测试 5个用户,循环2次,共发了10个请求.

  6. 协程、异步IO

    协程,又称微线程,纤程.英文名Coroutine,协程是一种用户态的轻量级线程. 协程拥有自己的寄存器上下文和栈.协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器 ...

  7. 黄聪:路由器WIFI连接无法正常访问个别网站及发送图片

    打开路由,路由默认MTU是1500,改成1472 就解决了

  8. PHP如何通过CURL上传文件

    PHP使用CURL上传文件只需发送一个POST请求就可以了,在请求中设置某个字段为需要上传的文件全路径,并且以“@”开头,然后使用CURL把该变量以POST方式发送到服务器,在服务端即可以从超级全局变 ...

  9. JS常用工具函数

    /** * Created by gaojun-pd on 2016/10/27. */ var Util = { /** * 1.判断非空 * 2.获取字符串真实长度 汉字算两位 * 3.判断参数类 ...

  10. haproxy +keepalived 原创

    Haproxy+keepalived 原理: HAProxy介绍及其定位 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.根 ...