ffmpeg 有用命令 (转载)
转自:http://blog.csdn.net/simongyley/article/details/9984167
1、将h264文件解码为yuv文件
ffmpeg -i file.h264 file.yuv
ffmpeg 转换
D:\ffmpeg\bin>ffmpeg.exe -i C:\Users\pc\Desktop\sp.mp4 -vf scale=500:-1 -t 100 ss.flv
C:\Users\pc\Desttop\sp.mp4 是所需要转换的文件地址
scale=500:-1 表示准换后的视频的宽度为500px -1表示高度自适应,也可以写成500:500,表示宽度和高度都是500px
-t 100 表示截取的视频的时间为100毫秒,
ss.flv表示命名的新文件名,文件存放在D盘.
ffmpeg 截图
ffmpeg -i demo.mp4 -ss 10.1 -t 0.001 1.jpg
截取demo.mp4的视频 从10.1秒开始 -t 0.001表示截取10.1秒的这张图片 保存为 1.jpg
ffmpeg 裁剪
ffmpeg -i demo.mp4 -filter:v "crop=10:20:100:100" out.mp4
crop里的参数依次为: 左边距:右边距:宽度:高度
ffmpeg 相同分辨率转flv
ffmpeg -i demo.mp4 -vcodec copy -acodec copy out.flv
Ipad 可以直接播放mp4,可以用html5的video标签
<video width="555" height="315" controls preload="auto" src="demo.mp4"></video>
ffmpeg 视频合成
因为 ffmpeg 是支持切分 mp4 视频的,所以我就理所当然的以为 ffmpeg 是支持视频合并。直到今天同事找我问方法,才发现一直以为的方法是错误的, mp4 不支持直接 concate(丢人了。。。),赶紧补了一下能量,从网上抓来了多种实现。
注: 这里的 mp4 指的是网上最多见的 h264+aac mpeg4 容器的方式
ffmpeg + ts
这个的思路是先将 mp4 转化为同样编码形式的 ts 流,因为 ts流是可以 concate 的,先把 mp4 封装成 ts ,然后 concate ts 流, 最后再把 ts 流转化为 mp4。
1
2
3
|
ffmpeg -i 1.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 1.ts ffmpeg -i 2.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 2.ts ffmpeg -i "concat:1.ts|2.ts" -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4 |
将 aif 文件转换为 16 位有符号数,小端存储模式,8000 Hz 采样率:
ffmpeg -i test.aif -f s16le -ar 8000 test.pcm
将 44.1KHz 双声道 16 位有符号数小端存储的 PCM 数据编码为 AAC:
ffmpeg -f s16le -ar 44100 -ac 2 -i test.pcm -acodec aac -strict experimental test.aac
将 4:2:0 的 YUV 文件编码为 H.264 ES 流(必须启用 ffmpeg 的 libx264 组件,即配置 ffmpeg 时:--enable-libx264):
ffmpeg -pix_fmt yuv420p -s 176x144 -i test.yuv -f h264 test.264
或
ffmpeg -pix_fmt yuv420p -s 176x144 -i test.yuv test.h264
将 H.264 ES 流解码为 YUV 文件(必须启用 ffmpeg 的 rawvideo 组件,即配置 ffmpeg 时:--enable-encoder=rawvideo):
ffmpeg -i test.264 test.yuv
将 4:2:0 QCIF 大小的 YUV 文件转换为 4:2:2 CIF 大小的 YUV 文件:
ffmpeg -pix_fmt yuv420p -s 176x144 -i foreman_qcif.yuv -pix_fmt yuv422p -s 352x288 test.yuv
将一幅 4:2:0 QCIF 大小的 YUV 图像转换为 CIF 大小的 BMP 文件:
ffmpeg -pix_fmt yuv420p -s 176x144 -i foreman_qcif.yuv -pix_fmt rgb24 -s 352x288 test.bmp
将 y4m 格式的图像序列转换为 4:2:0 的 YUV 图像序列:
ffmpeg -f yuv4mpegpipe -i test.y4m -pix_fmt yuv420p test.yuv
将 AVI 文件转换为 H.264 视频 + AC3 音频的 MP4 文件,码率为 4M,视频量化区间为[10,45](必须启用 ffmpeg 的 libx264 组件,即配置 ffmpeg 时:--enable-libx264):
ffmpeg -i test.avi -vcodec libx264 -b 4096000 -qmin 10 -qmax 45 -acodec ac3 test.mp4
将 YUV 和 PCM 文件经过编码后输出成为 MPEG PS 文件:
ffmpeg -pix_fmt yuv420p -s 720x576 -r 25 -b 8000000 -i test.yuv -f s16le -ac 2 -ar 48000 -ab 384000 -i test.pcm -f vob test.vob
Linux 下采集视频并编码为 H.263 ES 流:
ffmpeg -f video4linux2 -s 352*288
-r 25 -t 30 -i /dev/video0 -vcodec h263 -f h263 test.263
录音(mp3或amr):
ffmpeg -f oss -i /dev/dsp wheer.mp3
ffmpeg -f oss -i /dev/dsp -ar 8000 -ab 10200 wheer.amr
当然你还可以设一堆参数,如调节音量-vol 1024(256是默认值), 设定采样率-ar 8000,设定比特率-ab 122000等等。。。至于你想在麦克和声卡之间切换当然就可以求助于aumix了
另外,在~/.bashrc中定义alias amrec='ffmpeg -f oss -vol 1024 -i /dev/dsp -ar 8000 -ab 10200',以后就用amrec file.amr录音了,压缩率极高,一小时音频才5M多:)
屏幕录像:
ffmpeg -f x11grab -s xga -r 60 -i :0.0+0+0 wheer.avi
其中-f指定x11grab表示屏幕录像(*编译时必须加上--enable-x11grab选项*),-s设定尺寸,写成缩写或
1024x768格式均 可,-r设定fps,-i中的:0.0表示你的x11屏幕,+0,0表示偏移,如果你想录制某个小窗口,可以用xwininfo
-frame来找到具体坐标。
另外还有一堆参数可设,如比特率-b 200000,-vcodec为视频编码,还可加上-f oss -i /dev/dsp同时录音,用aumix将录音源调成麦克风就可以配音了,声音太小了用-vol改~~
视频剪切:
ffmpeg -ss 01:02:30 -t 00:10:00 -i test.mov -vcodec copy -acodec copy out.mov
将视频文件 test.mov 从第1小时2分30秒开始截取10分钟时长,即截取 test.mov 中第1小时2分30秒到第1小时12分30秒之间的内容。
How to capture a webcam input
https://trac.ffmpeg.org/wiki/How to capture a webcam input
Linux¶
On Linux, we can use video4linux2(or shortly "v4l2") input device to capture live input (such as webcamera), like this:
ffmpeg -f video4linux2 -r 25 -s 640x480 -i /dev/video0 out.avi
or
ffmpeg -f v4l2 -r 25 -s 640x480 -i /dev/video0 out.avi
If you need to set some specific parameters of your camera, youcan do that using v4l2-ctltool.
You can find it in the fedora/ubuntu/debian package namedv4l-utils.
Most probably you'll want to know what frame sizes / frame ratesyour camera supports and you can do that using: v4l2-ctl--list-formats-ext
Also, you might want to correct brightness, zoom, focus, etc.with:
v4l2-ctl -L
and
v4l2-ctl -c
=
Streaming a simple RTP audio stream from FFmpeg¶
https://trac.ffmpeg.org/wiki/StreamingGuide
FFmpeg can stream a single stream using the RTPprotocol. In order to avoid buffering problems on the otherhand, the streaming should be done through the -re option, whichmeans that the stream will be streamed in real-time (i.e. it slowsit down to simulate a live streaming source.
For example the following command will generate a signal, andwill stream it to the port 1234 on localhost:
ffmpeg -re -f lavfi -i aevalsrc="sin(400*2*PI*t)" -ar 8000 -f mulaw -f rtp rtp://127.0.0.1:1234
To play the stream with ffplay, run the command:
ffplay rtp://127.0.0.1:1234
Note that rtp by default uses UDP, which, for large streams, cancause packet loss. See the "point to point" section in thisdocument for hints if this ever happens to you.
关于页面视频播放的一些总结
1.如果文件比较大的话一般只能播放流媒体格式的文件,比如flv格式,采用边下载边播放的形式,所以如果文件不是flv格式的话需要按照上面所介绍的转换方式进行转换。
2.文件的码率会影响下载的速度,如果当前网络为1M,那么想要流畅的播放视频文件的话,播放的文件的码率必须在1024Kbps以下,否则就需要进行转换,以达到最佳播放效果。
更多关于Ffmpeg的介绍 http://ffmpeg.org/
更多关于Jplayer的介绍 http://www.jplayer.org/
ffmpeg 有用命令 (转载)的更多相关文章
- 黄聪:ffmpeg参数说明(转载)
ffmpeg.exe -i F:\闪客之家\闪客之歌.mp3 -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 f:\11.flv ffmpeg -i F:\01.wm ...
- ffmpeg参数说明(转载)
ffmpeg.exe -i F:\闪客之家\闪客之歌.mp3 -ab 56 -ar 22050 -b 500 -r 15 -s 320x240 f:\11.flv ffmpeg -i F:\01.wm ...
- FFmpeg 常用命令收集
FFmpeg 常用命令 合并视频 ffmpeg -i "KTDS-820A_FHD.mp4" -c copy -bsf:v h264_mp4toannexb -f mpegts i ...
- Linux下的有用命令
在之前的博客<Linux下常用命令与使用技巧>中,介绍了Linux的常用命令,在今天的博客中,给大家介绍其他的有用命令. 1.文本转换命令 在Linux下工作,我们不可避免地要和文件格式做 ...
- 转: FFmpeg功能命令汇总
原文: FFmpeg功能命令汇总 前言 如此强大的FFmpeg,能够实现视频采集.视频格式转化.视频截图.视频添加水印.视频切片.视频录制.视频推流.更改音视频参数功能等.通过终端命令如何实现这些功能 ...
- wav文件格式及ffmpeg处理命令
wav文件头详解 符合RIFF(Resource Interchange File Format)规范的wav文件的文件头记录了音频流的编码参数等基本信息.wav文件由多个块组成,至少包含RIFF标志 ...
- FFmpeg常用命令 (三)流媒体
前言 如此强大的FFmpeg,能够实现视频采集.视频格式转化.视频截图.视频添加水印.视频切片.视频录制.视频推流.更改音视频参数功能等.通过终端命令如何实现这些功能,Richy在本文做一记录,以备之 ...
- FFMpeg 常用命令格式转换,视频合成
FFmpeg都是命令行的,用起来肯定不方便.但是,这对技术宅应该不成问题.下面,我就罗列一些比较实用的使用方法吧. FFmpeg的下载与安装 FFmpeg是开源的.但我们不必去下载它的源代码.下载已经 ...
- ffmpeg常用命令-学习
文章标题:FFmpeg常用命令合集 文章地址:https://blog.csdn.net/lemon_tree12138/article/details/99719520
随机推荐
- 【Objective-C】07-自定义构造方法和description方法
在第5讲中已经介绍了如何定义类和创建并初始化对象,比如有Student这个类 1.Student.h 1 #import <Foundation/Foundation.h> 2 3 @in ...
- devstck 部署OpenStack Queens allinone
1.环境信息 1台虚拟机 8C16G CentOS 7.2 2.准备工作 #!/bin/bash set -x #配置aliyun的centos和epel mirror mkdir /etc/yu ...
- HTML5 & CSS3 & font-family
HTML5 & CSS3 & font-family 中文字体的英文名称 宋体* SimSun 黑体* SimHei 微软雅黑* Microsoft YaHei 微软正黑体 http: ...
- 常见问题:Linux安装Python3步骤、Windows无法利用pip
Linux安装python3.6和第三方库的步骤: 我的Linux是CentOS 6.5版本 Linux下大部分系统默认自带python2.x的版本,最常见的是python2.6或python2.7, ...
- Andorid使用WiFi 连接adb进行调试
无奈数据线连接常常掉线. 于是寻找wifi连接adb的方法,在github上搜索了一下client的源代码后编译后执行了下,发现能够行得通,于是记录一下. 相应的安卓client源代码在这wifi a ...
- 手把手教你开发Chrome扩展二:为html添加行为
手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单 手把手教你开发Chrome扩展二:为html添加行为 手把手教你开发Chrome扩展三:关于本地存储数据 上一节我们 ...
- golang中关闭http server
golange 开启http server 服务之后,怎么关闭呢? ------------------------------------------------------------------ ...
- 配置文件的备份和IOS 的备份
分享到 QQ空间 新浪微博 百度搜藏 人人网 腾讯微博 开心网 腾讯朋友 百度空间 豆瓣网 搜狐微博 百度新首页 QQ收藏 和讯微博 我的淘宝 百度贴吧 更多... 百度分享 广场 登录 注册 关注此 ...
- SQLite数据库基本操作
SQLite 是一个开源的嵌入式关系数据库,实现自包容.零配置.支持事务的SQL数据库引擎. 其特点是高度便携.使用方便.结构紧凑.高效.可靠. 与其他数据库管理系统不同,SQLite 的安装和运行非 ...
- 对“使用MyEclipse,写的jsp代码因有汉字而无法保存”问题的解决
使用MyEclipse编辑jsp时.有时会出现"使用MyEclipse,写的jsp代码因有汉字而无法保存"的现象,怎样解决呢? Window-->Preferences--& ...