FFmpeg 命令行工具ffmpeg




注:先cd到文件所在地文件夹也是可以的,直接使用文件名



1.列出ffmpeg支持的所有格式:

ffmpeg -formats



2.剪切一段媒体文件,可以使音频或者视频文件:

ffmpeg -i /Users/xiexianbin/Desktop/20180925195840.mp4 -ss 00:00:10.0 -codec copy -t 20 /Users/xiexianbin/Desktop/20180925195840_cut.mp4

表示将文件20180925195840.mp4从第10秒开始剪切20秒的时间,
输出到文件20180925195840_cut.mp4。
其中-ss指定偏移时间,-t指定时长



3.将一个媒体文件切割成多个媒体文件:

ffmpeg -i /Users/xiexianbin/Desktop/20180925195840.mp4 -t 00:00:20 -c copy /Users/xiexianbin/Desktop/20180925195840_part1.mp4 -ss 00:00:20 -codec copy /Users/xiexianbin/Desktop/20180925195840_part2.mp4

表示拷贝文件20180925195840.mp4前20秒存储为20180925195840_part1.mp4,

从20秒开始拷贝,存储为20180925195840_part2.mp4



4.提取一个视频文件中的音频文件:

ffmpeg -i /Users/xiexianbin/Desktop/20180925195840.mp4 -vn -acodec copy /Users/xiexianbin/Desktop/20180925195840_audio.m4a

提取为aac格式:(以下都是可以的)

ffmpeg -i 20180630151652.mp4 -vn -codec copy -bsf:a aac_adtstoasc 20180630151652.aac

ffmpeg -i 20180630151652.mp4 -vn -codec libfdk_aac -ar 64000 -ac 1 20180630151652_aduio_aac.aac

ffmpeg -i 20180630151652.mp4 -vn -codec libfdk_aac 20180630151652_aduio_aac.aac



5.提取一个视频文件中的视频文件:

ffmpeg -i /Users/xiexianbin/Desktop/20180925195840.mp4 -an -vcodec copy /Users/xiexianbin/Desktop/20180925195840_video.mp4



6.从MP4文件中抽取视频流导出为裸H264数据:

1),视频数据使用h264_mp4toannexb这个bitstream filter来转换为原始的H264数据

2),实测加不加-an结果都是一样的

以下几种都是可以的

ffmpeg -i /Users/xxb/Desktop/20180630151652.mp4 -codec copy -bsf: h264_mp4toannexb -f h264 /Users/xxb/Desktop/20180630151652.h264

ffmpeg -i /Users/xxb/Desktop/20180630151652.mp4 -vcodec copy -bsf: h264_mp4toannexb -f h264 /Users/xxb/Desktop/20180630151652.h264

ffmpeg -i /Users/xxb/Desktop/20180630151652.mp4 -an -codec copy -bsf:v h264_mp4toannexb -f h264 /Users/xxb/Desktop/20180630151652.h264

ffmpeg -i /Users/xxb/Desktop/20180630151652.mp4 -an -codec copy -bsf: h264_mp4toannexb /Users/xxb/Desktop/20180630151652.h264



7.使用AAC音频数据和H264视频数据生成MP4文件:

ffmpeg -i 20180630151652.aac -i 20180630151652.h264 -acodec copy -bsf:a aac_adtstoasc -vcodec copy -f mp4 20180630151652New.mp4

注意:使用上面生成的aac和h264文件生成新的mp4文件,视频播放速度会变快,暂时不知道怎么解决,终端的警告:

image



8.对音频文件的编码格式做转换:

mp3转aac:

ffmpeg -i 胡彦斌为你我受冷风吹.mp3 -acodec libfdk_aac 胡彦斌为你我受冷风吹.aac

如果出现报错:Unknown encoder 'libfdk_aac',安装fdk_aac库,
参考这篇文章中安装所需库的方法:https://www.jianshu.com/p/d1ed7b860f1b



9_1.从WAV音频文件中导出PCM裸数据:

ffmpeg -i 周杰伦稻香.wav -acodec pcm_s16le -f s16le 周杰伦稻香.pcm

这样就可以导出用16个bit来表示一个sample的PCM数据了,
并且每个sample的字节排列顺序都是小尾端表示的格式,
声道数和采样率使用的都是原始WAV文件的声道数和采样率



9_2.PCM数据转WAV:

ffmpeg -f s16le -ar 44100 -ac 2 -acodec pcm_s16le -i 周杰伦稻香.pcm 周杰伦稻香pcm2wav.wav



9_3.PCM数据转MP3:

ffmpeg -f s16le -ar 44100 -ac 2 -acodec pcm_s16le -i 周杰伦稻香.pcm 周杰伦稻香pcm2mp3.mp3



10.重新编码视频文件,复制音频流,同时封装到MP4格式的文件中:

ffmpeg -i testFlvVideo.flv -vcodec libx264 -acodec copy testFlvVideo.mp4



11.将一个MP4格式的视频转换成gif格式的动图:

ffmpeg -i 20180630151652.mp4 -vf scale=400:-1 -ss 00:00:05 -t 5 -r 10 20180630151652.gif

宽高比例不变,宽度改为400,帧率改为10,从第5秒开始,持续5秒的时间,生成gif



12.将一个视频的画面部分生成图片,比如要分析一个视频里面的每一帧都是什么内容的时候:

ffmpeg -i 20180630151652.mp4 -r 0.25 ./fpsPng/frames_%04d.png

每4秒截取一帧视频画面生成一张图片,生成的图片从frames_0001.png开始一直递增下去



13.使用一组图片生成一个gif:

ffmpeg -i ./fpsPng/frames_%04d.png -r 5 fpsPng.gif



14.使用音量效果器,改变一个音频媒体文件中的音量:

ffmpeg -i 周杰伦稻香.wav -af 'volume=0.5' 周杰伦稻香volume0.5.wav



15.淡入效果器的使用:

ffmpeg -i 周杰伦稻香.wav -filter_complex afade=t=in:ss=0:d=5 周杰伦稻香fadeIn.wav

从第0秒开始,持续5秒,淡如效果



16:淡出效果器的使用:

ffmpeg -i 周杰伦稻香.wav -filter_complex afade=t=out:st=215:d=8 周杰伦稻香fadeOut.wav

从第215秒开始,持续8秒,淡出效果



17:混音(将多路声音进行合并)

ffmpeg -i 周杰伦稻香.wav -i 胡彦斌为你我受冷风吹.mp3 -filter_complex amix=inputs=2:duration=shortest mixMusic.wav

将 周杰伦稻香.wav 和 胡彦斌为你我受冷风吹.mp3 两个文件进行混音,两个音频文件的时间较短的那个时间作为输出文件的时间长度

注:如果要用两个音频文件的时间长度较长的那个作为输出文件的时间长度shortest改成longest



18:对声音进行变速但不变调效果器的使用:

ffmpeg -i 胡彦斌为你我受冷风吹.mp3 -filter_complex atempo=0.5 胡彦斌为你我受冷风吹atempo0.5.mp3

将 胡彦斌为你我受冷风吹.mp3按照0.5倍的速度进行处理,生成 胡彦斌为你我受冷风吹atempo0.5.mp3,输出文件的时长变为原来的2倍,但是音高是不变调,这就是大家常说的变速不变调



19_1:为视频添加水印:

ffmpeg -i 20180630151652.mp4 -vf "movie=china.png[watermark];[in][watermark] overlay=10:10[out]" 20180630151652Chian.mp4
或者
ffmpeg -i 20180630151652.mp4 -i china.png -filter_complex overlay 20180630151652_withLogo.mp4



19_2:去掉视频水印:

ffmpeg -i 20180630151652_withLogo.mp4 -vf delogo=x=72:y=32:w=168:h=86:show=1 20180630151652_withoutLogo.mp4



20:视频提亮效果器的使用:

ffmpeg -i testFlvVideo\(没声音\).flv -c:v libx264 -b:v 800k -c:a libfdk_aac -vf eq=brightness=0.25 -f mp4 testFlvVideo_brightness.mp4

提亮参数是brightness,取值范围从-1.0-1.0,默认值是0



21:为视频增加对比度效果:

ffmpeg -i testFlvVideo\(没声音\).flv -c:v libx264 -b:v 800k -c:a libfdk_aac -vf eq=contrast=1.5 -f mp4 testFlvVideo_contrast.mp4

对比度参数是contrast,取值范围从-2.0-2.0,默认1.0



22:视频旋转效果器的使用:

ffmpeg -i 20180630151652.mp4 -vf "transpose=1" -b:v 600k 20180630151652Transpose.mp4

顺时针转90度



23:视频裁剪效果器的使用:

ffmpeg -i 20180630151652.mp4 -an -vf "crop=240:480:120:0" -vcodec libx264 -b:v 600k 20180630151652_crop.mp4

截取视频的尺寸为240*480,距离左边距120,距离上边距0。输出文件的比特率为600kbps



24:将一张RGBA格式表示的数据转换成JPEG格式图片:

ffmpeg -f rawvideo -pix_fmt rgba -s 480*480 -i texture.rgb -f image2 -vcodec mjpeg output.jpg



25:将一张YUV格式表示的数据转换成JPEG格式图片:

ffmpeg -f rawvideo -pix_fmt yuv420p -s 480*480 -i texture.yuv -f image2 -vcodec mjpeg output.jpg



26:将一段视频推送到流媒体服务器上:

ffmpeg -re -i input.mp4 -acodec copy -vcodec copy -f flv rtmp://xxxx



27:将流媒体服务器上的流dump到本地:

ffmpeg -i http://xxx/xxx.flv -acodec copy -vcodec copy -f flv output.flv



28:将两个音频文件以两路流到形式封装到一个文件中,比如在k歌的应用场景中,原唱伴唱实时切换的场景下,可以使用一个文件包含两路流,一路是伴奏流,一路是原唱流:

ffmpeg -i 131.mp3 -i 134.mp3 -map 0:a -c:a:0 libfdk_aac -b:a:0 96k -map 1:a -c:a:1 libfdk_aac -b:a:1 64k -vn -f mp4 output.m4a

第一路音频的编码方式为aac,比特率为96k。第二路音频的编码方式为aac,比特率为64k,取消视频输出,输出的格式为mp4

-map 0:a 代表指定第一个文件的音频

-c:a:0 libfdk_aac 代表第一个文件的音频的编码方式为aac



29:将输入的视频的分辨率改成960*540

ffmpeg -i 20180630151652.mp4 -vf scale=960:-1 20180630151652_scale960.mp4
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容