FFmpeg 常用命令

FFmpeg 常用到的命令

1. windows 配置 ffmpeg

  • 下载地址:

  • 将下载的压缩包解压放在: D:\SoftWare\ffmpeg

  • 将 "D:\SoftWare\ffmpeg\bin" 添加到Windows环境变量

  • 通过在CMD中运行 ffmpeg --version 命令来查看是否安装成功

2. 显式视频的细节

    ffmpeg -i vedio.mp4
    // 通过 -hide_banner 隐藏 ffmpeg 标语及细节, 只显示媒体文件的信息
    ffmpeg -hide_banner -i vedio-down.mp4

3. 视频文件格式的转换

    // 在常用的视频格式之间转换如: .avi .mp4 .rmvb .3gp .mpeg .wmv .flv
    ffmpeg -i vedio-down.mp4 vedio-down.avi
    ffmpeg -i vedio-down.avi vedio-down.flv
    //
    // 通过 -qscale 0 参数设置维持源视频文件的质量
    ffmpeg -i vedio-down.flv -qscale 0 vedio-down01.mp4
    //
    // 检查 ffmpeg 支持的格式
    ffmpeg -formats

4. 提取视频中的音频(去掉视频)

    // 参数说明:
    //     -vn : 不处理视频
    //     -an : 不处理音频
    //     -ar : 设定采样率 常用的值是22050 Hz、44100 Hz、48000 Hz
    //     -ac : 设定声音的通道数目
    //     -acodec : 设定声音编解码器,未设定时则使用与输入流相同的编解码器
    //     -vcodec : 设定视频编解码器,未设定时则使用与输入流相同的编解码器 
    //     -ab : 表明音频比特率
    //     -f : 输出文件格式 如: mp3
    ffmpeg -i out-countdown.mp4 -vn -ar 44100 -ac 2 -ab 320 -f mp3 start.mp3
    // 或者
    ffmpeg -i out-countdown.mp4 -vn -acodec copy start.mp3
    

5. 提取视频中的视频(去掉音频)

    // 参数说明同上
    ffmpeg -i out-countdown.mp4 -an -vcodec copy start.mp4

6. 更改视频的分辨率

    // 将vedio-down.mp4的分辨率设置为1920:1080的分辨率
    ffmpeg -i vedio-down.mp4 -filter:v scale=1920:1080 -c:a copy output-down.mp4
    // 将vedio-down.mp4的分辨率设置为640:480的分辨率
    ffmpeg -i vedio-down.mp4 -filter:v scale=640:480 -c:a copy output-down.mp4

7. 压缩视频文件

    // 压缩视频就是意味着损失视频质量
    ffmpeg -i vedio.mp4 -vf scale=1280:-1 -c:v libx264 -preset veryslow -crf 24 vedio-out.mp4

8. 压缩音频文件

    // 和视频一样,也会有损失
    ffmpeg -i start.mp3 -ab 128 start-out.mp3

9. 设置视频的屏幕显式比例

    // -aspect : 设置视频文件的屏幕显式比例
    // 常用的比例: 16:9, 4:3, 16:10, 2.21:1, 2.35:1, 5:4, 2.39:1 等等
    ffmpeg -i start.mp4 -aspect 16:9 out-start16_9.mp4

10. 给视频添加logo

    // 将logo.png 放在当前文件夹
    ffmpeg -i start.mp4 -i logo.png -filter_complex overlay out-image-start.mp4

11. 剪切媒体文件的某一段

    // 如: 将时长25秒的十秒倒计时视频剪切为五秒倒计时
    // 参数说明:
    //     -ss : 视频剪切的来时时间
    //     -t : 总的持续时间
    // vedio
    ffmpeg -i start.mp4 -ss 00:00:00 -codec copy -t 13 output.mp4
    // audio
    ffmpeg -i numb.mp3  -ss 00:00:00 -t 00:01:29 mid-numb.mp3

12. 将一个视频文件分为多个部分

    // 将一个视频分成两个
    ffmpeg -i start.mp4 -t 00:00:12 -c copy part01.mp4 -ss 00:00:12 -codec copy part02.mp4

13. 将多个视频拼接成一个视频

    // 今天将一个15S的视频合并成3分钟的视频
    // 第一步: 将源视频包装进TS格式的容器在进行合并
    ffmpeg -i mid01.mp4 - copy -bsf:v h264_mp4toannexb -f mpegts mid01.ts
    // 剩下的11个和上面的一样; 也可以写个脚本来完成呀
    //
    // 第二步: 编写 filelist.txt, 其每一行内容是
    file 'mid01.ts'
    file 'mid02.ts'
    //...
    // 第三步: 执行命令合成视频
    ffmpeg -f concat -i filelist.txt -c copy down-output.mp4

14. 给一个视频添加指定的音频

    // 第一步: 通过 11 条的命令来剪切视频到指定的长度
    //
    // 第二步: 通过 5 将源视频的音频去掉
    ffmpeg -i start.mp4 -c:v copy -an start-no-audio.mp4
    // 
    // 第三步: 将音频混到上面的视频中
    ffmpeg -i start-no-audio.mp4 -i audio.mp4 -vcodec copy -acodec copy start-OK.mp4

15. Linux下, 将摄像头实时视频录制并保存为文件

    ffmpeg -f video4linux -s 320*240 -r 10 -i /home/jeff/video output.mp4

16. 音视频变速

    // video 加速
    ffmpeg -i start.mp4 -filter:v setpts=0.5*PTS slow-start.mp4
    // audio 变速
    ffmpeg -i input.mp3 -filter:a atempo=2.0 output.mp3

17. 常用的OPTIONS 选项

17.1 获得帮助:

参数 说明
-h 打印基本选项
-h long 打印更多选项
-h full 打印所有选项(包括所有格式和编解码器特定的选项,很长)
-h type=name 打印命名的解码器/编码器/解复用器/ muxer /过滤器/ bsf的所有选项有关选项的详细说明,请参见man ffmpeg

17.2 打印帮助/信息/功能:

参数 说明
-L 显式执照
-h topic 显示帮助
-? topic 显示帮助
-help topic 显示帮助
--help topic 显示帮助
-version 显示版本
-buildconf 显示构建配置
-formats 显示可用格式
-muxers 显示可用的muxers
-demuxers 显示可用的多路分解器
-devices 显示可用设备
-codecs 显示可用的编解码器
-decoders 显示可用的解码器
-encoders 显示可用的编码器
-bsfs 显示可用的位流过滤器
-protocols 显示可用协议
-filters 显示可用的过滤器
-pix_fmts 显示可用的像素格式
-layouts 显示标准的频道布局
-sample_fmts 显示可用的音频样本格式
-colors 显示可用的颜色名称
-sources device 列出输入设备的来源
-sinks device 列出输出设备的接收器
-hwaccels 显示可用的硬件加速方法

17.3 全局选项(影响整个程序,而不仅仅是一个文件):

参数 说明
-loglevel loglevel 设置日志记录级别
-v loglevel 设置日志记录级别
-report 生成报告
-max_alloc bytes 设置单个分配块的最大大小
-y 覆盖输出文件
-n 从不覆盖输出文件
-ignore_unknown 忽略未知的流类型
-filter_threads 非复杂过滤器线程的数量
-filter_complex_threads -filter_complex的线程数
-stats 在编码过程中打印进度报告
-max_error_rate maximum error rate 最大错误率的错误率(0.0:无错误,1.0:100%错误),高于此比率ffmpeg将返回错误而不是成功。
-bits_per_raw_sample number 设置每个原始样本的位数
-vol volume 更改音频音量(256 =正常)

17.4 每个文件的主要选项:

参数 说明
-f fmt 强制格式
-c codec 编解码器名称
-codec codec 编解码器名称
-pre preset 预设名称
-map_metadata outfile[,metadata]:infile[,metadata] 设置infile中outfile的元数据信息infile
-t duration 记录或转码音频/视频的“持续时间”秒
-to time_stop 记录或转码停止时间
-fs limit_size 设置限制文件大小(以字节为单位)
-ss time_off 设置开始时间偏移
-sseof time_off 设置相对于EOF的开始时间偏移
-seek_timestamp 使用-ss按时间戳启用/禁用查找
-timestamp time 设置录制时间戳(“现在”设置当前时间)
-metadata string=string 添加元数据
-program title=string:st=number... 添加具有指定流的程序
-target type 指定目标文件类型(带有可选前缀“ pal-”,“ ntsc-”或“ film-”的“ vcd”,“ svcd”,“ dvd”,“ dv”或“ dv50”)
-apad 音频垫
-frames number 设置要输出的帧数
-filter filter_graph 设置流filtergraph
-filter_script filename 从文件中读取流filtergraph描述
-reinit_filter 输入参数更改时重新初始化filtergraph
-discard 丢弃
-disposition 处置

17.5 视频选项:

参数 说明
-vframes number 设置要输出的视频帧数
-r rate 设置帧速率(Hz值,分数或缩写)
-s size 设置帧大小(WxH或缩写)
-aspect aspect 宽高比设置的宽高比(4:3、16:9或1.3333、1.7777)
-bits_per_raw_sample number 设置每个原始样本的位数
-vn 禁用视频
-vcodec codec 强制视频编解码器(“复制”以复制流)
-timecode hh:mm:ss[:;.]ff 设置初始TimeCode值
-pass n 选择通行证编号(1至3)
-vf filter_graph 设置视频过滤器
-ab bitrate 音频比特率(请使用-b:a)
-b bitrate 视频比特率(请使用-b:v)
-dn 禁用数据

17.6 音频选项:

参数 说明
-aframes number 设置要输出的音频帧数
-aq quality 设置音频质量(特定于编解码器)
-ar rate 设置音频采样率(以Hz为单位)
-ac channels 设置音频频道数
-an 禁用音频
-acodec codec 强制音频编解码器(“复制”以复制流)
-vol volume 更改音频音量(256 =正常)
-af filter_graph 设置音频过滤器

17.7 字幕选项:

参数 说明
-s size 设置帧大小(WxH或缩写)
-sn 禁用字幕
-scodec codec 强制字幕编解码器(“复制”以复制流)
-stag fourcc/tag 强制字幕tag/fourcc
-fix_sub_duration 修复字幕的持续时间
-canvas_size size 设置画布大小(WxH或缩写)
-spre preset 将字幕选项设置为指示的预设

18. 未完, 目前这些已经够我用了, 用到在学习

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

推荐阅读更多精彩内容

  • 第一篇文章:作者:37号同学来源:CSDN原文:https://blog.csdn.net/chenzongduo...
    路漫漫其修远兮Wzt阅读 5,868评论 0 0
  • 分离视频音频流ffmpeg -i input_file -vcodec copy -an output_file_...
    nenhall阅读 6,333评论 2 6
  • 写在前面: 今天往移动硬盘上拷电影的时候忽然遇见文件过大无法拷贝的问题。因为一个移动硬盘如果分区为NTFS格式,那...
    vincentgemini阅读 14,161评论 0 9
  • FFMPEG是特别强大的专门用于处理音视频的开源库。你既可以使用它的API对音视频进行处理,也可以使用它提供的工具...
    小村医阅读 3,930评论 0 3
  • 1.分离视频音频流 ffmpeg -i input_file -vcodec copy -an output_fi...
    XLAccount阅读 3,060评论 0 8