ffmpeg 之乱七八糟命令

如果是选择的图片背景:

  1. 将图片变成视频大小,例如视频 360480 则取480, 720480 则取 720.
    ffmpeg -i tp.jpg -vf scale=480:480 tp.jpg
    ffmpeg -i cut.mp4 -vf 'movie=bg_out_image.png [bg]; [bg][in] overlay=(W-w)/2:(H-h)' -y out.mp4

如果是颜色背景
颜色也将它存为图片格式,然后将它scale到视频最大宽高
ffmpeg -i tp.jpg -vf scale=480:480 tp.jpg
ffmpeg -i video.mp4 -vf "movie=x.png [bg]; [bg][in] overlay=(W-w)/2:(H-h)" -y out.mp4

如果是视频高斯模糊效果 boxblur=1:5 清晰 boxblur=20:5 模糊
ffmpeg -i video.mp4 -vf "split[a][b];[a]scale=480x480,setdar=1:1,boxblur=10:5[1];[b]scale=224x480[2];[1][2]overlay=(W-w)/2"
-y out.mp4

ffmpeg -i cut.mp4 -vf 'split[a][b];[a]scale=960x1280,setdar='r=3/4',boxblur=10:5[1];[b]scale=960x540[2];[1][2]overlay=0:(H-h)/2' -y bg_video.mp4

如果仅仅单纯改变一下比例?
默认指定黑色背景作为它的背景 !!

给视频添加文本和图片,可以用一个命令搞定吗?

ffmpeg -i edit.mp4 -vf "drawtext=fontcolor=white:fontsize=28:fontfile=font.ttf:text='中国你好':x=50:y=50[text];movie=shuiying1.png[wm];[text][wm]overlay=0:0[out]" xx.mp4

同时添加文本和图片!!!

ffmpeg -i edit.mp4 -vf "
drawtext=enable='between(t,0,2)':fontcolor=white:fontsize=28:fontfile=font.ttf:text='中国你好':x=0:y=0[text1],
movie=shuiying1.png[wm1];[text1][wm1]overlay=30:30:enable='between(t,0,2)'[out1],
[out1]
drawtext=enable='between(t,2,4)':fontcolor=white:fontsize=28:fontfile=font.ttf:text='xxx':x=0:y=0[text2],
movie=shuiying1.png[wm2];[text2][wm2]overlay=40:60:enable='between(t,2,3)'[out2]
" xx.mp4

ffmpeg -i edit.mp4 -vf "drawtext=fontcolor=white:fontsize=28:fontfile=font.ttf:text='中国你好':x=50:y=50" xx.mp4

  1. FFmpeg 命令
    448:960
    ///-r 0.1 表示10秒钟截图一次
    String command = "-i " + inputVideoPath + " -r 0.1 -f image2 $cachePath/image-%05d.jpeg";
///压缩视频
String command = "-i " + inputVideoPath + " -b:v 30000k -s 216x384 " + compressVideoPath;

///添加水印
String command2 = "-i " +
    compressVideoPath +
    " -i " +
    waterMarkPath2 +
    " -i " +
    waterMarkPath +
    " -filter_complex overlay=10:10,overlay=5:5 " +
    outVideoPath +
    "";

指定时间加入水印
ffmpeg -i yasuo.mp4 -i test.png -i kongbai.png -filter_complex overlay=0:0:enable='between(t,3,5)',overlay=10:0:enable='between(t,5,8)' out.mp4

-i edit.mp4 -i test.png -i test.png -filter_complex "[1:v]scale=110.8910891089109:110.8910891089109[img1],[2:v]scale=237.30693069306932:169.6633663366337[img2],
[0:v][img1]overlay=77:100[v1],[v1][img2]overlay=18:348" -q 0 -y gt_process_done_video.mp4

-i input.mp4 -i test.png -filter_complex "[1:v]scale=100.0:100.0[img1],[0:v][img1]overlay=108.56615193684901:343.51793416341184[v1]" -q 0 -y gt_process_done_video.mp4

///加入多个水印,并且改变水印大小和显示时间
ffmpeg -i input.mp4 -i test.png -i test2.png -i test3.png -filter_complex
"[1:v]scale=50:50[img1],[2:v]scale=50:50[img2],[3:v]scale=-1:-1[img3],
[0:v][img1]overlay=0:0:enable='between(t,3,5)'[v1],
[v1][img2]overlay=10:0:enable='between(t,5,8)'[v2],
[v2][img3]overlay=70:0:enable='between(t,5,8)'"
-y out.mp4

ffmpeg -i edit.mp4 -i 1.jpg -filter_complex "[1:v]scale=110:110[img1],\
[0:v][img1]overlay=77:100:enable='between(t,3,5)'" \
-q 0 -y gt_process_done_video.mp4

ffmpeg -i input.mp4 -i test.png -i test2.png -filter_complex "[1:v]scale=50:50[img1];[2:v]scale=40:40[img2];[0:v][img1]overlay=2:3[bkg];[bkg][img2]overlay=40:40" -q 0 -y out.mp4

///改变视频到指定尺寸!!!
ffmpeg -i mycut.mp4 -vf scale=300:400 scale.mp4

ffmpeg -i video.mp4 -vcodec h264 -vf "scale='max(480,iw*0.5)':-1" -r 15 -acodec libmp3lame -ac 2 -ar 22050 -f mp4 -y 3.mp4

ffmpeg -i tp1.jpg -vf drawtext=fontcolor=white:fontsize=28:fontfile=font.ttf:text='中国
你好':x=50:y=50 -y tp2.jpg

电脑端命令~~~~
ffmpeg -i /Users/mac/Desktop/ffmpge/input.mp4 -vf "drawtext=fontcolor=white:fontsize=40:fontfile=/Users/mac/Desktop/ffmpge/gt_video_font.ttf:text='ceshi':x=50:y=50:enable='lte(t,5)'" -y /Users/mac/Desktop/ffmpge/out.mp4

ffmpeg -i /Users/mac/Desktop/ffmpge/input.mp4 -vf "drawtext=fontcolor=white:fontsize=40:fontfile=/Users/mac/Desktop/ffmpge/gt_video_font.ttf:text='ceshi':x=50:y=50'" -q 0 -y /Users/mac/Desktop/ffmpge/out.mp4

///添加一个文本
ffmpeg -i /Users/mac/Desktop/ffmpge/video.mp4 -vf drawtext=enable='between(t,3,5)':fontcolor=white:fontsize=40:fontfile=/Users/mac/Desktop/ffmpge/font/youyuan.ttf:text='ceshi':x=50:y=50 -y /Users/mac/Desktop/ffmpg/out.mp4

ffmpeg -i tp1.jpg -vf drawtext=fontcolor=white:fontsize=28:fontfile=font.ttf:text='中国你好':x=50:y=50 -y tp2.jpg

///一句命令给视频添加多个text
ffmpeg -i /Users/mac/Desktop/ffmpge/video.mp4 -vf "drawtext=enable='between(t,3,5)':fontcolor=white:fontsize=40:fontfile=/Users/mac/Desktop/ffmpge/font/youyuan.ttf:text='ceshi':x=50:y=50, drawtext=enable='between(t,7,10)':fontcolor=white:fontsize=40:fontfile=/Users/mac/Desktop/ffmpge/font/youyuan.ttf:text='haha':x=50:y=50" -y /Users/mac/Desktop/ffmpge/out.mp4

///音频部分
http://ffmpeg.org/ffmpeg-filters.html#Audio-Sources

///将mp4提取mp3.
ffmpeg -i /Users/mac/Desktop/ffmpge/video.mp4 -f mp3 -vn /Users/mac/Desktop/ffmpge/apple.mp3

///实现混音效果

ffmpeg -i yasuo.mp4 -stream_loop -1 -i duan_music.mp3 -filter_complex
"[0:a]volume=0.2[a0];
[1:a]volume=0.8[a1];
[a0][a1]amix=inputs=2[a]"
-map 0:v -map "[a]" -c:v copy -c:a aac -shortest -t 11 -y output.mp4

分离视频中的音频 和 视频,这时候视频没声音
ffmpeg -i video.mp4 -f mp3 -vn gt_video_audio.mp3 -an gt_video.mp4

获取视频中的音频
ffmpeg -i input.mp4 -vn -y -acodec copy output.m4a

将声音变成0.5
ffmpeg -i input.wav -filter:a "volume=0.5" output.wav

合并两个音频
ffmpeg -i bgmusic.mp3 -i gt_video_audio.mp3 -filter_complex amix=inputs=2:duration=first:dropout_transition=2 gt_audio.mp3

ffmpeg -i bgmusic.mp3 -i gt_video_audio.mp3 -filter_complex amerge -ac 2 -c:a libmp3lame -q:a 4 gt_audio.mp3

ffmpeg -i bgmusic.mp3 -i gt_video_audio.mp3 -filter_complex amix=inputs=2:duration=first -c:a libmp3lame -q:a 4 gt_audio.mp3

去掉视频中的音频
ffmpeg -i input.mp4 -an output.mp4

合并音频和视频
ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -strict experimental output.mp4

水印相关
指定长,高度按比例缩放:
ffmpeg -i input.jpg -vf scale=320:-1 output_320x240.png

///加入水印到视频, 并且改变水印大小
ffmpeg -i input.mp4 -i test.png -filter_complex "[1:v]scale=80:80[test];[test]overlay=x=20:y=0" -c:v h264 out.mp4

重要参数讲解
-vf 视频的过滤器
-filter_complex graph_description创建一个复杂的filter graph.

  1. 将一张png 或者 gif 转成mp4 .
    方案1 ->>>>>>>>>>
    ///将视频转成gif https://blog.csdn.net/ternence_hsu/article/details/87714244
    ffmpeg -r 28 -i pianwei.gif -pix_fmt yuv420p -s 380x474 video_gif.mp4
  1. 给一个视频追加片尾mp4, list.txt 里面格式
    方案1 ->>>>>>>>>>
    /// 如果加上 -vcodec copy -acodec copy 速度更快!!这个是直接拷贝视频数据 -c copy
    /// -r 是针对基调不一样的两个视频,很重要, 如果没加会出现花屏或者第一个视频播放完等半天才播放第二个,-r 多少可以看下fps
    ffmpeg -r 25 -f concat -i list.txt -vcodec copy -acodec copy -y concat.mp4 上面这个需要格式啥的完全一致
    ffmpeg -r 25 -f concat -i list.txt -y concat.mp4

  2. 给视频添加一个背景,
    方案1 ->>>>>>>>>>
    ffmpeg -loop 1 -i icon_video_style_big1.png -i video.mp4 -filter_complex "overlay=(W-w)/2" -shortest -y output.mp4
    方案2 ->>>>>>>>>>
    ffmpeg -i video.mp4 -vf "movie=x.png [bg]; [bg][in] overlay=(W-w)/2:(H-h)" -y out.mp4

  3. 高斯模糊视频

方案1 ->>>>>>>>>>
ffmpeg -i video1.mp4 -vf "split[a][b];[a]scale=1024:768,boxblur=10:5[1];[b]scale=(iw*768)/ih:768[2];[1][2]overlay=(W-w)/2" 2.mp4

方案2 ->>>>>>>>>> :224x480 改变分辨率和宽高比例
ffmpeg -i video.mp4 -vf "split[a][b];[a]scale=480x480,setdar=1:1,boxblur=20:5[1];[b]scale=224x480[2];[1][2]overlay=(W-w)/2" -y out.mp4

  1. 修改视频尺寸

范例:

?设定显示比例为 16:9
setdar='r=16/9'

setdar='dar=16/9'

?设定像素比例为 40:33
setsar='r=40/33'

setsar='sar=40/33'
说明: >> setdar 是修改尺,如果不改尺寸 单独修改宽高视频不会变化多少
ffmpeg -i video_tail.mp4 -vf scale=960:540,setdar='r=16/9' -y tt.mp4

  1. 拷贝某一段
    ffmpeg -ss 2 -to 4 -accurate_seek -i source.mp4 -codec copy -avoid_negative_ts 1 -y xx.mp4
  1. 给图片添加文字

(1) 改变图片尺寸!
ffmpeg -i tp.jpg -vf scale=400:-1 tp1.jpg
(2) 图片添加文字

  1. 创建一个纯色视频 并绘制颜色
    (1)

///创建一个纯色的视频
ffmpeg -f lavfi -i color=c=0x22000000:s=224x480:d=5 output.mp4

///将创建的纯色视频跟原始视频进行合并.产生新的视频
ffmpeg -i video.mp4 -i out.mp4 -filter_complex "[0:v]format=yuva444p,colorchannelmixer=aa=0[valpha];[1:v][valpha]overlay=(W-w)/2:(H-h)/2" -y overlay4.mp4

ffmpeg -i output.mp4 -vf "drawtext=fontcolor=white:fontsize=40:fontfile=font.ttf:text='我是测试文本':x=50:y=50" -y out.mp4

参考文档:
https://ffmpeg.org/ffmpeg-filters.html#drawtext-1
https://www.iteye.com/blog/keren-1773536

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