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 截取片断的更多相关文章

  1. html5中的video标签和audio标签

    不管是否承认,flash早已不像过往那样如日中天了.亚马逊全面放弃flash.苹果放弃flash.安卓也放弃了移动端的flash支持.事实上flash已经不太适合web开发了,因为HTML5中的vid ...

  2. html5之音频、视频(video&audio)

    音频&视频 本篇为本人的学习笔记. 在Html5之前,浏览器对于视频和音频的处理并没有一个标准.因此在网页中看到的视频,都是通过第三插件的方式嵌入的,如:QuickTime.RealPlaye ...

  3. Webpack 2 视频教程 017 - Webpack 2 中分离打包项目代码与组件代码

    原文发表于我的技术博客 这是我免费发布的高质量超清「Webpack 2 视频教程」. Webpack 作为目前前端开发必备的框架,Webpack 发布了 2.0 版本,此视频就是基于 2.0 的版本讲 ...

  4. (转)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 ...

  5. SQL 中数值型数据截取以及四舍五入

    SQL 中数值型数据截取及四舍五入 例一: -- 将两个数值分别截取只保留两位小数 ( 注意此时字段默认为 decimal ) select CAST ( 10.097 as decimal ( 10 ...

  6. 检测是否支持HTML5中的Video标签

    //检测是否支持HTML5 function checkVideo() { if (!!document.createElement('video').canPlayType) { var vidTe ...

  7. php如何清除html格式并去除文字中的空格然后截取文字

    PHP如何清除html格式并去除文字中的空格然后截取文字,详细分享一下处理方法(顺便对PHP清除HTML字符串的函数做了一个小结): htmlspecialchars 将特殊字元转成 HTML格式语法 ...

  8. video+ audio

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  9. FFmpeg: FFmepg中的sws_scale() 函数分析

    FFmpeg中的 sws_scale() 函数主要是用来做视频像素格式和分辨率的转换,其优势在于:可以在同一个函数里实现:1.图像色彩空间转换, 2:分辨率缩放,3:前后图像滤波处理.不足之处在于:效 ...

随机推荐

  1. Python 获取时间戳

    Python 获取时间通过 time 模块 如下代码,是通过获取当前的时间,按照格式输出 Python默认获取当前的时间返回的都是时间的元组,下面是元组的,字符串时间的一个转换输出 # -*- cod ...

  2. 621 - Secret Research

     Secret Research  At a certain laboratory results of secret research are thoroughly encrypted. A res ...

  3. Why Python?

    Python is object-oriented Structure supports such concepts as polymorphism , operation overloading , ...

  4. 立波 iphone3gs越狱教程:成功把iphone3gs手机升级成ios6.1.3系统,完美越狱,解决no service和耗电量大的问题

    前几天,老婆使用的iphone3gs摔地了,把手机里的连接电源的那个神马线给搞坏了,结果花了200多块大洋修好了: 修好后,老婆抱怨道:5年了,这手机好多软件都装不上,说手机版本号太低了, 我就说凑合 ...

  5. Win2003 Server磁盘配额揭密之补遗篇

    Win2003 Server磁盘配额揭密之补遗篇 [ 作者:茶乡浪子    转贴自:it168.com    点击数:5011    更新时间:2005-1-17  ]   执行查看用户的磁盘配额信息 ...

  6. perl uri_escape(urlencode ) 转换

    [root@wx03 lib]# cat a1.pl #引入模块 use URI::Escape; #urlencode $encoded = uri_escape("[中均]") ...

  7. 恭喜我开通了CSDN博客

    准备在这里写点东西,记录我的学习过程....

  8. 奇葩的UI引用LayoutInflater.from问题

    今收到BUG一枚,一个页面的EditText的风格变为了系统默认(系统经过定制,风格和普通的不同) 经检查xml无任何不妥,最终问题出在LayoutInflater.from上. 如果LayoutIn ...

  9. Python 学习入门(20)—— 循环

    1. for 循环 for循环需要预先设定好循环的次数(n),然后执行隶属于for的语句n次. 基本构造是 for 元素 in 序列: statement 举例来说,我们编辑一个叫forDemo.py ...

  10. Delphi安装NT服务程序时(不出现提示信息)

    如果我们不加上"/silent",那么Delphi在安装和卸载NT服务程序时候,都会出现一个提示信息,不希望出现这个提示信息,那么使用如下命令: 1,安装:“你的nt程序 /ins ...