首页 > 其他分享 >ffmpeg常用操作命令

ffmpeg常用操作命令

时间:2023-06-27 18:12:02浏览次数:37  
标签:map 常用 操作命令 1280 ih mp4 720 ffmpeg

添加音轨

ffmpeg -i input.mp4 -i cc.MP3 -c:v copy -c:a aac -map 0:v -map 1:a -shortest output.mp4

并行合并多个视频

ffmpeg -i video1.mp4 -i video2.mp4 -i video3.mp4 -i video4.mp4 -filter_complex "[0:v][0:a][1:v][1:a][2:v][2:a][3:v][3:a]concat=n=4:v=1:a=1[outv][outa]" -map "[outv]" -map "[outa]" -c:v h264_qsv -c:a aac output.mp4

混音以及调节音量

ffmpeg -i input.mp4 -i cc.MP3 -i bgmusic.mp3 -filter_complex "[1:a]volume=2.0[a];[2:a]volume=0.3[b];[a][b]amix=inputs=2:duration=shortest:dropout_transition=2[outa]" -map 0:v -map "[outa]" -c:v copy -c:a aac -shortest output.mp4

按长的来
ffmpeg -i input.mp4 -i cc.MP3 -i bgmusic.mp3 -filter_complex "[1:a]volume=2.0[a];[2:a]volume=0.3[b];[a][b]amix=inputs=2:duration=longest:dropout_transition=2[outa]" -map 0:v -map "[outa]" -c:v copy -c:a aac -shortest output.mp4


并行合并多个视频(去音轨)

ffmpeg -i video1.mp4 -i video2.mp4 -i video3.mp4 -i video4.mp4 -filter_complex "[0:v][1:v][2:v][3:v]concat=n=4:v=1:a=0[outv]" -map "[outv]" -c:v h264_qsv -q:v 19 output.mp4

横屏转为竖屏(竖屏改尺寸也可以用)

ffmpeg -i input.mp4 -vf "scale=720:-1,pad=720:1280:(720-iw)/2:(1280-ih)/2:black" -c:v libx264 -c:a copy output.mp4

裁剪合并视频

ffmpeg -i video1.mp4 -i video2.mp4 -i video3.mp4 -i video4.mp4 -filter_complex "[0:v]scale=720:-1,pad=720:1280:(720-iw)/2:(1280-ih)/2:black[v0];[1:v]scale=720:-1,pad=720:1280:(720-iw)/2:(1280-ih)/2:black[v1];[2:v]scale=720:-1,pad=720:1280:(720-iw)/2:(1280-ih)/2:black[v2];[3:v]scale=720:-1,pad=720:1280:(720-iw)/2:(1280-ih)/2:black[v3];[v0][0:a][v1][1:a][v2][2:a][v3][3:a]concat=n=4:v=1:a=1[outv][outa]" -map "[outv]" -map "[outa]" -c:v libx264 -c:a copy output.mp4

给视频添加水印(两种都可以用)

																		坐标
ffmpeg -i input.mp4 -i watermark.png -filter_complex "[0:v][1:v]overlay=0:0" -c:v libx264 -c:a copy output.mp4

ffmpeg -i input.mp4 -vf "movie=watermark.png[watermark1];[in][watermark1]overlay=0:0" -y output.mp4

添加更改尺寸以及添加水印

ffmpeg -i input.mp4 -i watermark.png -filter_complex "[0:v]scale=720:-1,pad=720:1280:(720-iw)/2:(1280-ih)/2:black[v];[v][1:v]overlay=0:0" -c:v libx264 -c:a copy output.mp4

添加字幕

ffmpeg -i input.mp4 -vf "subtitles=src.srt:force_style='fontname=黑体,fontsize=8,primarycolour=&Hffffff,OutlineColour=&h00222222,outline=1,Alignment=2,MarginV=50" -c:v h264_qsv -q:v 19 -c:a copy -t 50 test.mp4

连续指令

ffmpeg -i input.mp4 -i watermark.png -filter_complex "[0:v]scale=720:-1,pad=720:1280:(720-iw)/2:(1280-ih)/2:black[v];[v][1:v]overlay=0:0" -c:v libx264 -c:a copy -f nut - | ffmpeg -y -i - -vf "subtitles=src.srt:force_style='fontname=黑体,fontsize=8,primarycolour=&Hffffff,OutlineColour=&h00222222,outline=1,Alignment=2,MarginV=50" -c:v h264_qsv -q:v 19 -c:a copy -t 50  output.mp4

连续指令并合成音轨

ffmpeg -i input.mp4 -i watermark.png -filter_complex "[0:v]scale=720:-1,pad=720:1280:(720-iw)/2:(1280-ih)/2:black[v];[v][1:v]overlay=0:0" -c:v libx264 -c:a copy -f nut - | ffmpeg -y -i - -i cc.MP3 -vf "subtitles=src.srt:force_style='fontname=黑体,fontsize=8,primarycolour=&Hffffff,OutlineColour=&h00222222,outline=1,Alignment=2,MarginV=50" -c:v h264_qsv -q:v 19 -c:a copy -map 0:v -map 0:a -map 1:a -t 50  output.mp4

推荐
ffmpeg -i input.mp4 -i watermark.png -filter_complex "[0:v]scale=720:-1,pad=720:1280:(720-iw)/2:(1280-ih)/2:black[v];[v][1:v]overlay=0:0" -c:v libx264 -c:a copy -f nut - | ffmpeg -y -i - -i cc.MP3 -vf "subtitles=src.srt:force_style='fontname=黑体,fontsize=8,primarycolour=&Hffffff,OutlineColour=&h00222222,outline=1,Alignment=2,MarginV=50" -c:v h264_qsv -q:v 19 -c:a copy -map 0:v -map 1:a -t 87  output.mp4

终极指令

(1)

ffmpeg -i video1.mp4 -i video2.mp4 -i video3.mp4 -i video4.mp4 -i watermark.png -filter_complex "[0:v]scale=720:-1,pad=720:1280:(720-iw)/2:(1280-ih)/2:black[v0];[1:v]scale=720:-1,pad=720:1280:(720-iw)/2:(1280-ih)/2:black[v1];[2:v]scale=720:-1,pad=720:1280:(720-iw)/2:(1280-ih)/2:black[v2];[3:v]scale=720:-1,pad=720:1280:(720-iw)/2:(1280-ih)/2:black[v3];[v0][0:a][v1][1:a][v2][2:a][v3][3:a]concat=n=4:v=1:a=1[outv][outa];[outv][4:v]overlay=0:0[out]" -map "[out]" -map "[outa]" -c:v libx264 -c:a aac -movflags +faststart -f nut - | ffmpeg -y -i - -i cc.MP3 -vf "subtitles=src.srt:force_style='fontname=黑体,fontsize=8,primarycolour=&Hffffff,OutlineColour=&h00222222,outline=1,Alignment=2,MarginV=100" -c:v h264_qsv -q:v 19 -c:a copy -map 0:v -map 1:a -t 87 output.mp4

(2)推荐

ffmpeg -i video1.mp4 -i video2.mp4 -i video3.mp4 -i video4.mp4 -i watermark.png -filter_complex "[0:v]scale=720:-1,pad=720:1280:(720-iw)/2:(1280-ih)/2:black[v0];[1:v]scale=720:-1,pad=720:1280:(720-iw)/2:(1280-ih)/2:black[v1];[2:v]scale=720:-1,pad=720:1280:(720-iw)/2:(1280-ih)/2:black[v2];[3:v]scale=720:-1,pad=720:1280:(720-iw)/2:(1280-ih)/2:black[v3];[v0][0:a][v1][1:a][v2][2:a][v3][3:a]concat=n=4:v=1:a=1[outv][outa];[outv][4:v]overlay=0:0[out]" -map "[out]" -map "[outa]" -c:v libx264 -c:a aac -movflags +faststart -f nut - | ffmpeg -y -i - -i cc.MP3 -i bgmusic.mp3 -filter_complex "[0:v]subtitles=src.srt:force_style='fontname=黑体,fontsize=8,primarycolour=&Hffffff,OutlineColour=&h00222222,outline=1,Alignment=2,MarginV=100'[v];[1:a]volume=2.0[a];[2:a]volume=0.3[b];[a][b]amix=inputs=2:duration=longest:dropout_transition=2[outa]" -map "[v]" -map "[outa]" -c:v h264_qsv -q:v 19 -c:a aac -t 80 output.mp4
ffmpeg -i video1.mp4 -i video2.mp4 -i video3.mp4 -i video4.mp4 -i watermark.png -filter_complex "
[0:v]scale=720:-1,pad=720:1280:(720-iw)/2:(1280-ih)/2:black[v0];[1:v]scale=720:-1,pad=720:1280:(720-iw)/2:(1280-ih)/2:black[v1];[2:v]scale=720:-1,pad=720:1280:(720-iw)/2:(1280-ih)/2:black[v2];[3:v]scale=720:-1,pad=720:1280:(720-iw)/2:(1280-ih)/2:black[v3];
[v0][0:a][v1][1:a][v2][2:a][v3][3:a]concat=n=4:v=1:a=1[outv][outa];[outv][4:v]overlay=0:0[out]" -map "[out]" -map "[outa]" -c:v libx264 -c:a aac -movflags +faststart -f nut - | ffmpeg -y -i - -i cc.MP3 -i bgmusic.mp3 -filter_complex "[0:v]subtitles=src.srt:force_style='fontname=黑体,fontsize=8,primarycolour=&Hffffff,OutlineColour=&h00222222,outline=1,Alignment=2,MarginV=100'[v];[1:a]volume=2.0[a];[2:a]volume=0.3[b];[a][b]amix=inputs=2:duration=longest:dropout_transition=2[outa]" -map "[v]" -map "[outa]" -c:v h264_qsv -q:v 19 -c:a aac -t 80 output.mp4
# 更改这样的尺寸合并不会错
ffmpeg -i input.mp4 -vf "scale=720:1280,setsar=1:1" output.mp4
# 设置立体声以及采样频率为 44100HZ
ffmpeg -i input1.mp4 -i music/cc.MP3 -i bgmusic.mp3 -filter_complex "[1:a]volume=2.0[a];[2:a]volume=0.3[b];[a][b]amix=inputs=2:duration=longest:dropout_transition=2[outa]" -map 0:v -map "[outa]" -c:v copy -c:a aac -ar 44100 -ac 2 -shortest output.mp4
   
#更改尺寸以及采样频率 帧率为30                        
ffmpeg -i video2.mp4 -vf "scale=720:1280,fps=30" -c:v libx264 -preset medium -crf 23 -c:a copy -ar 44100 -ac 2 output.mp4
合并两个相同的视频(光速合并)
ffmpeg -f concat -safe 0 -i input.txt -c copy output.mp4

input.txt写法:
file 'video1.mp4'
file 'video2.mp4'

剪辑横版视频

ffmpeg -i input.mp4 -vf "crop=ih*9/16:ih,scale=720:1280" -c:a  copy output.mp4
# 转竖版加速
ffmpeg -i input.mp4 -vf "crop=ih*9/16:ih,scale=720:1280" -c:v h264_qsv -c:a aac output.mp4

把视频切割成1分钟

ffmpeg -i input.mp4 -c copy -f segment -segment_time 60 -reset_timestamps 1 output_%03d.mp4

转竖版并切割1分钟

ffmpeg -i input.mp4 -vf "crop=ih*9/16:ih,scale=720:1280" -c:v h264_qsv -c:a aac output.mp4 && ffmpeg -i output.mp4 -c copy -f segment -segment_time 60 -reset_timestamps 1 video/output_%03d.mp4

解决windows添加文字水印问题

ffmpeg -y -i input.mp4 -vf "drawtext=text='总裁三代单传,你大爷的':x=(w-text_w)/2:y=200:fontsize=50:fontcolor=white:borderw=2:bordercolor=black:fontfile=方正粗黑宋简体,drawtext=text='没想到她生了个孩子':x=(w-text_w)/2:y=250:fontsize=50:fontcolor=yellow:borderw=2:bordercolor=black:fontfile=方正粗黑宋简体,drawtext=text='老爷子放话:给我死劲宠':x=(w-text_w)/2:y=300:fontsize=50:fontcolor=yellow:borderw=2:bordercolor=black:fontfile=方正粗黑宋简体" -c:a copy -t 20 output1.mp4


*** fontfile如果要加载字体,必须fontfile='yhct.ttf',加引号并且不能用中文

标签:map,常用,操作命令,1280,ih,mp4,720,ffmpeg
From: https://www.cnblogs.com/wukai66/p/17509621.html

相关文章

  • maven核心,pom.xml详解(转) 附录A mave的依赖范围 附录B maven常用命令集
    什么是pom?   pom作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。主要描述了项目:  -包括配置文件;  -开发者需要遵循的规则,  -缺陷管理系统,  -组织和licenses,  -项目的url,  -项目的依赖性,  -以及其他所有的项目相关因素。 快速......
  • 数组常用方法(转)
    常用使用原文:https://www.jianshu.com/p/ba4f4637eaad1.join()join(’参数‘)把数组的元素以传入的参数为分割符,转换成字符串。letarr=[1,2,3,4,5];letstr=arr.join(',');console.log(str)//->'1,2,3,4,5';2.push()和pop()push():可以接收任意数量的参数,把它们......
  • css居中(自己常用的)
    水平居中:1.text-aligin:center  如果仅使用 text-aligin:center   是无法达到水平居中的效果的,为什么?text-aligin:center  需要在行内块元素上使用的,而盒子是块级元素,所以,需要将盒子转换为行内块元素 text-aligin:center  才能生效。<divstyle="text-align:cen......
  • js常用操作
    1.重新渲染页面元素this.$forceUpdate(); 2.对象转化为json字符串再传参JSON.stringify()  3.删除js对象元素index表示对象下标deletethis.imgList[index];......
  • docker ubantu 常用操作
    运行容器dockerrun--namenginx-p80:80-dnginx查看容器列表dockercontainerls查看容器列表dockercontainerl停止容器dockerstopnginx-test启动容器dockerstartnginx-test删除容器dockerrmnginx-test容器自启动dockerupdate--restart=alwaysnginx-test ......
  • 【转】网络常用颜文字(文字表情)
    网络常用颜文字:本文纯属从阿林这里截取转帖的部分内容,只是为了使用方便,感谢原作者的收集。【啊啊】w(゚Д゚)w【擦眼泪】(ノへ ̄、)【不屑】( ̄_, ̄)【好耶】ヽ(✿゚▽゚)ノ【棒】(๑•̀ㅂ•́)✧【抽】( ̄ε(# ̄)☆╰╮o( ̄皿 ̄///)【亲】(づ ̄3 ̄)づ╭❤~【汗】Σ(°△°|||)︴【笨】(......
  • git常用命令-远程操作
    [email protected]:..../*.git#将远程代码克隆到本地且项目名称默认为远程项目名称[email protected]:..../*.gitmygit#将远程代码克隆到指定文件夹(mygit)中[email protected]:..../*.gitmygit#将远程代码指定分支......
  • linux vim常用快捷键
    linuxvim常用快捷键行尾插入:A行首插入:I光标后插入:a光标前插入:i往下插入空行:o往上插入空行:O定位整个文本第一行:gg定位整个文本最后一行:G定位某行:比如定位21行::21或21gg或21G复制整行:yy粘贴:p往下复制3行:3yy复制单个字符:v模式——y复制——p粘贴删除整行:dd往下删......
  • 【Mybatis】常用的标签积累<sql>、<where>等
    一·常用标签组示例: 二、部分标签总结1.sql片段标签<sql>:通过该标签可定义能复用的sql语句片段,在执行sql语句标签中直接引用即可。这样既可以提高编码效率,还能有效简化代码,提高可读性,需要配置的属性:id="">>>表示需要改sql语句片段的唯一标识引用:通过<includerefid=""/......
  • linux内核常用调优参数
    linux内核常用调优参数1.vm.swappiness:该参数控制系统在内存不足时,内核将页面交换到磁盘的程度。默认值为60,建议值为10-30。2.vm.overcommit_memory:该参数控制系统是否允许超额分配内存。默认值为0,建议值为1。3.vm.dirty_ratio:该参数控制系统脏页占内存的比例。默认值为20,建议......