当前位置: 首页 > news >正文

【FFMPEG】FFMPEG介绍

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它包括了目前领先的音/视频编码库libavcodec。 FFmpeg是在Linux下开发出来的,但它可以在包括Windows在内的大多数操作系统中编译。这个项目是由Fabrice Bellard发起的,现在由Michael Niedermayer主持。可以轻易地实现多种视频格式之间的相互转换,例如可以将摄录下的视频avi等转成现在视频网站所采用的flv格式。

FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括Windows、Mac OS X等。

FFmpeg's Logo这个项目最早由Fabrice Bellard发起,现在由Michael Niedermayer维护。许多FFmpeg的开发人员都来自MPlayer项目,而且当前FFmpeg也是放在MPlayer项目组的服务器上。项目的名称来自MPEG视频编码标准,前面的"FF"代表"Fast Forward"。

FFmpeg

视频采集功能

FFmpeg是在Linux下开发出来的,但它可以在包括Windows在内的大多数操作系统中编译。这个项目是由Fabrice Bellard发起的,现在由Michael Niedermayer主持。

ffmpeg视频采集功能非常强大,不仅可以采集视频采集卡或USB摄像头的图像,还可以进行屏幕录制,同时还支持以RTP方式将视频流传送给支持RTSP的流媒体服务器,支持直播应用。

ffmpeg在Linux下的视频采集

在Linux平台上,ffmpeg对V4L2的视频设备提高了很好的支持,如:

./ffmpeg -t 10 -f video4linux2 -s 176*144 -r 8 -i /dev/video0 -vcodec h263 -f rtp rtp://192.168.1.105:5060 > /tmp/ffmpeg.sdp

以上命令表示:采集10秒钟视频,对video4linux2视频设备进行采集,采集QCIF(176*144)的视频,每秒8帧,视频设备为/dev/video0,视频编码为h263,输出格式为RTP,后面定义了IP地址及端口,将该码流所对应的SDP文件重定向到/tmp/ffmpeg.sdp中,将此SDP文件上传到流媒体服务器就可以实现直播了。

ffmpeg在windows下的视频采集

在windows下关于ffmpeg视频采集的资料非常少,但是ffmpeg还是支持windows下视频采集的。ffmpeg支持windows下video for windows(VFW)设备的视频采集,不过VFW设备已经过时,正在被WDM的视频设备所取代,但是ffmpeg还没有支持WDM的计划,不过好像有将WDM转为VFW的工具,因此ffmpeg还是可以在windows下进行视频采集的。

视频格式转换功能

ffmpeg视频转换功能。视频格式转换,比如可以将多种视频格式转换为flv格式,可不是视频信号转换 。

ffmpeg可以轻易地实现多种视频格式之间的相互转换(wma,rm,avi,mod等),例如可以将摄录下的视频avi等转成现在视频网站所采用的flv格式。

视频截图功能

对于选定的视频,截取指定时间的缩略图。视频抓图,获取静态图和动态图,不提倡抓gif文件;因为抓出的gif文件大而播放不流畅

给视频加水印功能

使用ffmpeg 视频添加水印(logo)。

推荐阅读:

Linux下编译FFmpeg之下载源文件并编译 http://www.linuxidc.com/Linux/2012-02/54565.htm

Linux 编译升级 FFmpeg 步骤 http://www.linuxidc.com/Linux/2013-08/88190.htm

Ubuntu 10.10下编译FFmpeg  http://www.linuxidc.com/Linux/2012-12/76160.htm

Ubuntu 安装FFmpeg1.0 , OpenCV2.4.2  http://www.linuxidc.com/Linux/2012-12/75641.htm

Ubuntu 10.10 64bit下使用Android NDK r6编译FFmpeg 0.8.1  http://www.linuxidc.com/Linux/2012-12/76161.htm


转载于:https://www.cnblogs.com/huty/p/8517579.html

相关文章:

  • [原创软件]Maya语言切换工具
  • 【GoLang】GoLang 错误处理 -- 异常处理思路示例
  • Tower 实战一:MavLink的连接与通信
  • hive 数据清理--数据去重
  • rails生成器生成自定义controller模板
  • 关于适配器中设置显示与隐藏的问题
  • 递归的例子
  • 各种居中对齐
  • 面向对象 封装 、继承
  • [学习笔记]背包问题(一)
  • SQL 基础语法(一)
  • HTTP慢速DOS(slow http denial of service attack)
  • PAT甲题题解-1104. Sum of Number Segments (20)-(水题)
  • Java 8 Lambda表达式,让你的代码更简洁
  • 使用scrapy创建工程
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • canvas 五子棋游戏
  • conda常用的命令
  • Django 博客开发教程 8 - 博客文章详情页
  • js ES6 求数组的交集,并集,还有差集
  • js继承的实现方法
  • Logstash 参考指南(目录)
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • MySQL主从复制读写分离及奇怪的问题
  • SpiderData 2019年2月23日 DApp数据排行榜
  • Swift 中的尾递归和蹦床
  • VUE es6技巧写法(持续更新中~~~)
  • 代理模式
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 基于web的全景—— Pannellum小试
  • ------- 计算机网络基础
  • 力扣(LeetCode)357
  • 嵌入式文件系统
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 阿里云移动端播放器高级功能介绍
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • 说说我为什么看好Spring Cloud Alibaba
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (3)nginx 配置(nginx.conf)
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (Python) SOAP Web Service (HTTP POST)
  • (分布式缓存)Redis分片集群
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (学习日记)2024.01.09
  • (一) storm的集群安装与配置
  • (一)appium-desktop定位元素原理
  • .NET Core WebAPI中封装Swagger配置