Linux下源码安装ffmpeg及ffmpeg的简单使用说明
一、编译安装
ffmpeg在安装时依赖的包和版本都很让人头疼,不同编译环境也各不相同。公司之前封装了一个又各种出错。
其实办法很简单,就是到官网一步一步按着做就行了:
http://trac.ffmpeg.org/wiki/CompilationGuide
自己系统用的什么系统,就选择什么系统,照着操作就行了。
我选的是“Compiling FFmpeg on CentOS / RHEL / Fedora”唯一的不足就是ffmpeg的git地址不起作用,我使用了下面的地址进行了替换
git clone git://source.ffmpeg.org/ffmpeg.git
参考网址:
http://www.cnblogs.com/wainiwann/p/4128154.html
http://ffmpeg.org/documentation.html
二、使用
ffmpeg的作用:
对于图片:
可以裁剪图片,可以把图片导出成视频,可以把图片嵌入到视频中;
对与视频:
输入输出流支持文件和各种视频流,比如hls协议的m3u8播放串、udp流等;
可以对视频进行转码,比如mp4转mpegts,编码率转恒码率等;
对视频添加各种信息,主要用-metadata字段;
视频的剪切封装提取图片等等。
主要参数:
-i 设定输入流
-f 设定输出格式
-ss 开始时间 视频参数:
-b 设定视频流量,默认为200Kbit/s
-r 设定帧速率,默认为25
-s 设定画面的宽与高
-aspect 设定画面的比例
-vn 不处理视频
-vcodec 设定视频编解码器,未设定时则使用与输入流相同的编解码器 音频参数:
-ar 设定采样率
-ac 设定声音的Channel数
-acodec 设定声音编解码器,未设定时则使用与输入流相同的编解码器
-an 不处理音频
-c copy表示不改变音频视频的格式和内容
-muxrate 表示指定封装的码率
-y 表示指定输出文件
简单的使用说明:
提取图片:
ffmpeg –i test.avi –r 1 –f image2 image-%3d.jpeg
视频剪切:
ffmpeg -ss 0:1:30 -t 0:0:20 -i input.avi -vcodec copy -acodec copy output.avi
视频录制:
ffmpeg –i rtsp://192.168.3.205:5555/test –vcodec copy out.avi
推送rtmp视频流:
./ffmpeg -re -i "bjqn01.mp4" -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 "rtmp://192.168.15.133:1935/myapplive/test1"
推送udp流:
./ffmpeg -re -i ./test.mp4 -fpre -threads 24 -b:v 1500k -s 720*576 -vsync 0 -ac 2 -ar 48000 -report -loglevel error -f mpegts -y udp://0.0.0.0:10021/test.ts
转码:将MP4转换为mpegts的恒流的码率:
./ffmpeg -i ./test.mp4 -fpre preset -b:v 30000k -b:a 128k -filter:v yadif=deint=interlaced -maxrate 30000k -minrate 30000k -acodec copy -metadata service_name="FFMPEG" -muxrate 32000k -s 3840x2160 -f mpegts -y /mpeg/output/a.ts
preset是一个文本,只是将一些参数封装起来而已
vcodec=libx264
vprofile=high
level=4
preset=superfast
g=25
keyint_min=25
x264-params=force-cfr=1
rc-lookahead=10
sc_threshold=0
refs=4
subq=6
acodec=libfdk_aac
b:a=32k
Linux下源码安装ffmpeg及ffmpeg的简单使用说明的更多相关文章
- linux下源码安装netcat
linux下源码安装netcat http://blog.chinaunix.net/uid-20783755-id-4211230.html 1,下载netcat源码,netcat-0.7.1-13 ...
- linux下源码安装软件
在linux下的很多软件都是通过源码包方式发布的,这样做对于最终用户而言,虽然相对于二进制软件包,配置和编译起来繁琐点,但是它的可移植性却好得多,针对不同的体系结构,软件开发者往往仅需发布同一份源码包 ...
- Linux 下源码安装大杂烩
本文仅以记录平常源码安装部分软件是需注意的关键点. 有时为了方便,如在 Ubuntu 系统中,采用 sudo apt-get install soft-version 来安装某一版本的软件显得更为便捷 ...
- Linux下源码安装方式安装MySQL
1.下载安装包:https://downloads.mysql.com/archives/community/ 2.安装开发工具和安装包 因为要把源码编译成二进制数据,所以必须要有编译器和解释器 g ...
- linux下源码安装apache服务
1.搭建静态网站是,我们只需要搭建apache服务即可满足要求. 例如:如果我再客户端游览器输入地址,他会找到192.168.1.100这个服务器,然后根据端口会找到apache服务器.apache他 ...
- linux下源码安装rabbitMq
一.安装erlang前期环境安装1.利用yum安装erlang编译所依赖的环境 yum -y install make gcc gcc-c++ kernel-devel m4ncurses-devel ...
- Linux下源码安装MySQL-5.6.25
从mysql-5.5起,mysql源码安装开始使用cmake了,因此我们得先安装cmake,配置安装目录./configure --perfix=/.....的时候和以前的会有些区别. 一.安装cma ...
- Linux下源码安装JDK7
安装说明 安装环境:Red Hat Enterprise Linux7.1安装方式:源码安装 软件:jdk-7u80-linux-x64.gz 安装 #首先查看系统原有JDK信息 rpm -qa | ...
- linux下源码安装
●源码的安装(./configure –prefix 命令用法)一般由3个步骤组成:配置(configure).编译(make).安装(make install). Configure是一个可执行脚本 ...
随机推荐
- WPF学习之路(七)应用程序和窗口
手动创建应用程序 1.创建Empty Project 2.添加引用 3.添加 ManualApp.cs 并添加下面的代码 [STAThread] public static void Main() { ...
- 从刚刚「简书」平台的短暂异常,谈Nginx An error occurred报错~
09.26简书平台的短暂异常 An error occurred. Sorry, the page you are looking for is currently unavailable. Plea ...
- Web API与国际化
软件国际化是在软件设计和文档开发过程中,使得功能和代码设计能处理多种语言和文化习俗,在创建不同语言版本时,不需要重新设计源程序代码的软件工程方法.这在很多成熟的软件开发平台中非常常见.对于.net开发 ...
- Git中文版教程
1. 起步 1.1 关于版本控制 1.2 Git 简史 1.3 Git 基础 1.4 命令行 1.5 安装 Git 1.6 初次运行 Git 前的配置 1.7 获取帮助 1.8 总结 2. Git 基 ...
- Mongodb源代码阅读笔记:Journal机制
Mongodb源代码阅读笔记:Journal机制 Mongodb源代码阅读笔记:Journal机制 涉及的文件 一些说明 PREPLOGBUFFER WRITETOJOURNAL WRITETODAT ...
- Javascript之旅——第十一站:原型也不好理解?
写到这篇,我的js系列也快接近尾声了,所以这个系列不会遗留js来实现面向对象的核心——原型,有些人说原型不好理解,其实嘛,要想系统 的理解原型,最便捷的方式就是看看经典的书,少看些博客,博客这东西只是 ...
- 如何阻止h5body的滑动
// 禁止 document.body.style.overflow = 'hidden'; function _preventDefault(e) { e.preventDefault(); } w ...
- 尝试一下sql server2016里面的json功能
前2天下载了一个2016的rc版本来玩一下,首先感觉是~开发者版本免费啦!!撒花!!!另外一个东西,sql server 2016能支持json 的解析和应用啦,虽然我不知道它的性能如何,先来一发测试 ...
- Java synchronized同步 各方式略解
近段为了实现一个功能,在树结构中,修改某个节点名称时,需要同时修改这个节点所有子节点的节点全路径属性字段(类似"父父节点名称/父节点名称/子节点名称/子子节点名称"的构造).因为在 ...
- jqGrid 学习笔记--数据异步加载方法(转)
var commonQuery = '../importantInfoReport/pageQueryImportantInfoReport.action?type=0'; jQuery(" ...