ffmpeg 频中分离 video audio 截取片断
1。获取视频的信息
ffmpeg -i video.avi
2,将图片序列分解合成视频
ffmpeg -i src.mpg image%d.jpg
ffmpeg -f image2 -i image%d.jpg dst.mpg
合成注意事项:
假设图片序列是3位数,用image%03d
假设jpg文件名称字是乱的用。以下命令规整一下
x=1; for i in *jpg; do counter=$(printf %03d $x); mv "$i" image"$counter".jpg; x=$(($x+1)); done
3, 从视频中分离 video, audio 片断
仅仅要音频
ffmpeg -i src.mp4 -ss 00:00:10 -t 00:00:5 -vn -acodec copy dst.mp4 ( -vn 表示 "video no" , -ss 00:00:10 -t 00:00:5 表示開始时间为10秒,长度5秒)
仅仅要视频
ffmpeg -i src.mp4 -ss 00:00:10 -t 00:00:5 -an -vcodec copy dst.mp4 ( -an 表示 "audio no" >)
4.从视频抽出声音,并存为Mp3
ffmpeg -i source_video.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 sound.mp3
( Ubuntu 下可能转化失败,现执行sudo apt-get install ffmpeg libavcodec-extra-53)
5 合成视频和音频
ffmpeg -i son.wav -i video_origine.avi video_finale.mpg (音频也能够是 mp3 。 假设音频比视频长,用KMP播放文件。 视频播完后停最后一画面,音频继续)
其它
为视频又一次编码以适合在iPod/iPhone上播放
ffmpeg -i source_video.avi input -acodec aac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 320x180 -title X final_video.mp4
为视频又一次编码以适合在PSP上播放
ffmpeg -i source_video.avi -b 300 -s 320x240 -vcodec xvid -ab 32 -ar 24000 -acodec aac final_video.mp4
将.avi转成gif动画(未压缩)
ffmpeg -i video_origine.avi gif_anime.gif
将.avi转成dv
ffmpeg -i video_origine.avi -target pal-dv video_finale.dv
将.avi压缩成divx
ffmpeg -i video_origine.avi -s 320x240 -vcodec msmpeg4v2 video_finale.avi
问题和高级技巧:
1)The encoder 'aac' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it.
在command中增加 -acodec aac -strict -2, 比方:
$ ffmpeg -i 02软件园.mp4 -i 1.mp3 -acodec aac -strict -2 软件园.mp4
2)两个声音mix
ffmpeg -i input1.wav -i input2.wav -filter_complex "[0:a][1:a]amerge=inputs=2[aout]" -map "[aout]" -ac 2 output.mp3
ffmpeg -i input1.mp3 -i input2.mp3 -filter_complex amerge -c:a libmp3lame -q:a 4 output.mp3
3) join
ffmpeg -i "concat:input1.mpg|input2.mpg|input3.mpg" -c copy output.mpg
ffmpeg -f concat -i <(find . -name '*.wav' -printf "file '%p'\n") -c copy output.wav
4) 视频倒放
$ ffmpeg -i input.mkv -an -qscale 1 %06d.jpg
$ x=1; for i in $(ls -t *jpg); do counter=$(printf %03d $x); mv "$i" img"$counter".jpg; x=$(($x+1)); done
$ 再合成jpg
5) 声音倒放
转化为 wav, 用sox 实现声音反转
sox -V audio.wav backwards.wav reverse
6)声音压缩
ffmpeg -i input.mkv -filter:a "atempo=2.0" -vn output.mkv
ref
https://trac.ffmpeg.org/wiki/Concatenate
https://trac.ffmpeg.org/wiki/AudioChannelManipulation
http://stackoverflow.com/questions/2553448/encode-video-in-reverse
https://trac.ffmpeg.org/wiki/How%20to%20speed%20up%20/%20slow%20down%20a%20video
很多其它:
http://blog.csdn.net/leixiaohua1020/article/details/38284961
ffmpeg 频中分离 video audio 截取片断的更多相关文章
- html5中的video标签和audio标签
不管是否承认,flash早已不像过往那样如日中天了.亚马逊全面放弃flash.苹果放弃flash.安卓也放弃了移动端的flash支持.事实上flash已经不太适合web开发了,因为HTML5中的vid ...
- html5之音频、视频(video&audio)
音频&视频 本篇为本人的学习笔记. 在Html5之前,浏览器对于视频和音频的处理并没有一个标准.因此在网页中看到的视频,都是通过第三插件的方式嵌入的,如:QuickTime.RealPlaye ...
- Webpack 2 视频教程 017 - Webpack 2 中分离打包项目代码与组件代码
原文发表于我的技术博客 这是我免费发布的高质量超清「Webpack 2 视频教程」. Webpack 作为目前前端开发必备的框架,Webpack 发布了 2.0 版本,此视频就是基于 2.0 的版本讲 ...
- (转)Integrating Intel® Media SDK with FFmpeg for mux/demuxing and audio encode/decode usages 1
Download Article and Source Code Download Integrating Intel® Media SDK with FFmpeg for mux/demuxing ...
- SQL 中数值型数据截取以及四舍五入
SQL 中数值型数据截取及四舍五入 例一: -- 将两个数值分别截取只保留两位小数 ( 注意此时字段默认为 decimal ) select CAST ( 10.097 as decimal ( 10 ...
- 检测是否支持HTML5中的Video标签
//检测是否支持HTML5 function checkVideo() { if (!!document.createElement('video').canPlayType) { var vidTe ...
- php如何清除html格式并去除文字中的空格然后截取文字
PHP如何清除html格式并去除文字中的空格然后截取文字,详细分享一下处理方法(顺便对PHP清除HTML字符串的函数做了一个小结): htmlspecialchars 将特殊字元转成 HTML格式语法 ...
- video+ audio
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- FFmpeg: FFmepg中的sws_scale() 函数分析
FFmpeg中的 sws_scale() 函数主要是用来做视频像素格式和分辨率的转换,其优势在于:可以在同一个函数里实现:1.图像色彩空间转换, 2:分辨率缩放,3:前后图像滤波处理.不足之处在于:效 ...
随机推荐
- js实现图片上传预览及进度条
原文js实现图片上传预览及进度条 最近在做图片上传的时候,由于产品设计的比较fashion,上网找了比较久还没有现成的,因此自己做了一个,实现的功能如下: 1:去除浏览器<input type= ...
- Java读写Word文件常用技术
Java操作操作Word文件,最近花了几天时间解决使用Word模板导出数据的问题,收集到一些资料分享下. 常见的技术如下: 1.POI(兼容doc.docx文件) 官方网站:http://poi. ...
- http://www.cutt.com/
简网APP工场-服务介绍 服务介绍
- sharepoint 2013 根据网站模版创建网站,并赋值网站权限 create a site by custom site template
通过程序,根据网站模版,创建新的网站 private void CreateSiteBySiteTemplate() { SPSecurity.RunWithElevatedPrivileges(de ...
- VS2010+QT4.8.5 +FastReport教程
如需转载请标明出处:http://blog.csdn.net/itas109 採用QT 的QAxObject方式执行FastReport特别麻烦,并且无法在编译的时候知道代码是否正确,并且大部分的函数 ...
- c# 未能载入文件或程序集
近期做项目时碰到这个问题了.goole.百度了半天,整理了下面几种可能: DLL文件名称与载入时的DLL文件名称不一致, DLL文件根本不存在,即出现丢失情况, 载入DLL路径错误,即DLL文件存在, ...
- PL/SQL(二):变量
变量 标识符定义 PL/SQL程序设计中的标识符定义与SQL的标识符定义的要求相同.要求和限制有: 个字符. )首字符必须为字母. )不区分大小写. )不能使用SQL保留字. )对标识符的命名最好遵循 ...
- HDU 4070 Phage War
贪心,t 大的放到前面...因为感染所有cell需要的phage的总数是一定的,所以产生phage需要的时间是一定的,只需要考虑用来感染的时间,这样考虑的话,把 t 小的放后面的话,可以发现总时间的最 ...
- 在命令行获取标准输入序列的反互序列,pep序列和长度信息
近期对序列文件处理的比較多,时常要看一些核酸序列的反向互补序列,长度.可能的翻译序列. 曾经我常用seqBuider 来查看.假设能在命令行直接查看.想必是极好的. 这是一个perl脚本.只是我把它的 ...
- Delphi 能不能从Ring 3进入Ring 0
我发现了一篇发表在1999.11.29 b13版的 <令win32应用程序跳入系统层>东南大学 卢威 luwei@126.com 是用vc++嵌汇编做的, ...