官网

http://www.ffmpeg.org/download.html

windows安装

如下载过慢,可以找我要安装包,qq:1206154726

下载后解压直接就可调用

from ffmpy3 import FFmpegff = FFmpeg(inputs={r'C:\Users\ht-desktop-001\Desktop\1.mp4': None},outputs={r'C:\Users\ht-desktop-001\Desktop\1.avi': None})print(ff.cmd)
ff.run()
# 转视频格式,需要的话可以配环境变量
#如果找不到ffmpeg,则修改源码绝对路径,在ffmpy3.py中

Centos (离线)安装

https://johnvansickle.com/ffmpeg/release-source/

下载后解压缩

xz -d ffmpeg-4.1.tar.xz
tar -xf ffmpeg-4.1.tar

确保系统有gcc和yasm(如果没有则下载)

 yum install gcc

安装yasm

 wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gzgunzip yasm-1.3.0.tar.gzcd yasm-1.3.0tar -xf yasm-1.3.0.tarcd yasm-1.3.0./configuremake && make installcd ~
cd ffmpeg-4.1
./configure --enable-shared --prefix=/usr/local/ffmpeg  #输入如下命令/usr/local/ffmpeg为自己指定的安装目录
make & make install
# 也可分开1.make  2.make install修改文件/etc/ld.so.conf(也可不用)
vim /etc/ld.so.conf
输入以下内容
include ld.so.conf.d/*.conf
/usr/local/ffmpeg/lib/
输入ldconfig使修改生效。输入:     /usr/local/ffmpeg/bin/ffmpeg -version
或:      /root/ffmpeg-4.1/ffmpeg -version

常用命令

视频相关

格式转换
.

# 命令: ffmpeg -i source target
# 例如avi转mp4
ffmpeg -i input.avi output.mp4

提取视频(从视频中提取音频)

# 命令: ffmpeg -i input -acodec type -vn output
# 例如mp4提取音频一般为aac,某些格式可能会报错
ffmpeg -i input.mp4 -acodec aac -vn output.aac

提取音频(只保留视频而不保留音频)

ffmpeg -i input.mp4 -vcodec copy -an output.mp4

视频剪切

# 从时间为00:00:15开始,截取5秒钟的视频
ffmpeg -ss 00:00:15 -t 00:00:05 -i input.mp4 -vcodec copy -acodec copy output.mp4ffmpeg -ss 00:00:00 -to 00:05:23 -i imput.mp4 -y -f mp4 -vcodec copy -acodec copy -q:v 1 output.mp4
参数说明:-ss 指定要截取的视频的起始时间。-to 指定要截取的视频的终止时间。-i 输入文件,这里指的就是视频文件。-y 表示无需询问,直接覆盖输出文件(如果有原文件的话)。-f 指定输出视频的格式。-acodec 指定音频编码格式。copy表示编码格式不发生改变,直接复制原来的编码格式,这样会大大提升速度。-vcodec 指定视频编码格式。copy表示编码格式不发生改变,直接复制原来的编码格式,这样会大大提升速度。-q:v 1 q是质量,v是视频,v的取值范围是[1, 35],取值1的时候,对应着最佳的视频质量。

添加字幕

# mp4添加软字幕
ffmpeg -i infile.mp4 -i infile.srt -c copy -c:s mov_text outfile.mp4
# mkv添加软字幕
ffmpeg -i input.mkv -i subtitles.srt -c copy output.mkv
# 硬字幕
ffmpeg -i end_font.mp4 -vf subtitles=words.srt -y output.mp4

码率控制

一个视频源的码率太高了,有10Mbps,文件太大,想把文件弄小一点,但是又不破坏分辨率# 将码率将为2Mbpsffmpeg -i input.mp4 -b:v 2000k output.mp4ffmpeg官方wiki比较建议,设置b:v时,同时加上 -bufsize,用于设置码率控制缓冲器的大小,
设置的好处是,让整体的码率更趋近于希望的值,减少波动。
# 设置为码率在2Mpbs波动
ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k output.mp4-minrate最小码率,-maxrate最大码率
# 码率最大不超过2500k
ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k -maxrate 2500k output.mp4

编码转换

比如一个视频的编码是MPEG4,转换为H264编码
ffmpeg -i input.mp4 -vcodec h264 output.mp4

修改分辨率

将输入的1920x1080缩小到960x540输出
ffmpeg -i input.mp4 -vf scale=960:540 output.mp4

添加图片(可以用于给视频添加logo)

# 将图片添加到视频中,默认在左上角
ffmpeg -i input.mp4 -i logo.png -filter_complex overlay output.mp4
# 右上角
ffmpeg -i input.mp4 -i logo.png -filter_complex overlay=W-w output.mp4
# 左下角
ffmpeg -i input.mp4 -i logo.png -filter_complex overlay=0:H-h output.mp4
# 右下角
ffmpeg -i input.mp4 -i logo.png -filter_complex overlay=W-w:H-h output.mp4

局部打码(可用于一些网站logo打码)

# 语法:-vf delogo=x:y:w:h[:t[:show]]
ffmpeg -i input.mp4 -vf delogo=0:0:220:90:100:1 output.mp4

截取画面

# r表示每一秒几帧,-q:v表示存储jpeg的图像质量,一般2是高质量。
ffmpeg -i input.mp4 -r 1 -q:v 2 -f image2 pic-%03d.jpeg如此,ffmpeg会把input.mp4,每隔一秒,存一张图片下来
# -ss表示开始时间,-t表示共要多少时间
ffmpeg -i input.mp4 -ss 00:00:20 -t 10 -r 1 -q:v 2 -f image2 pic-%03d.jpeg如此,ffmpeg会从input.mp4的第20s时间开始,往下10s,即20~30s这10秒钟之间,每隔1s就抓一帧,总共会抓10帧

视频拼接

ffmpeg -i "concat:input1.mpg|input2.mpg|input3.mpg" -c copy output.mpg

提取图像的频率,-ss 开始时间,-t 持续时间

ffmpeg -ss 0:1:30 -t 0:0:20 -i input.avi -vcodec copy -acodec copy output.avi    //剪切视频

视频中生成gif图片

ffmpeg -i capx.mp4 -t 10 -s 320x240 -pix_fmt rgb24 jidu1.gif
// -t参数表示提取前10秒视频
// -s 表示按照 320x240的像素提取ffmpeg -ss 0 -t 4 -i C:\Users\Yi\Desktop\4.74a8ed67.mp4 -s 1000*660 -r 15 res.gif
-ss 0秒开始
-t  4秒结束

视频导出成多张图片(取帧)

ffmpeg -i output.mp4 -r 30 -f image2 foo-%05d.jpegffmpeg -i video.mp4 frames_%05d.png

帧合并视频

ffmpeg -i frames_%05d.png -vcodec mpeg4 test.mp4ffmpeg -y -framerate 25 -i D:\video\frames_%05d.png -vcodec mpeg4 test.mp4ffmpeg  -y -framerate 24.0 -i "D:/Temp/img/img.%04d.png" -c:v libx264 -crf 30 -preset:v ultrafast -pix_fmt yuv420p  -vf "scale=960:-2" "D:/Temp/output.mov"参数:
y 将所有需要确认的操作默认为yes-framerate 或 -r , 为帧率,默认25-i “D:/Temp/img.%04d.png” 为输入图片的命名格式-c:v 为视频编码格式, libx264表示使用H.264, 这种格式文件体积较小
H.264又有四种画质等级,baseline, extended, main, high
使用 -level 指定,1.0 、 2.0 、 3.0 或 4.0-vf 为视频过滤器video filter,其中scale为resolution,-2表示保持原有比例,输入图片是720x540的,输出后视频的默认尺寸放大了,变为960x(540*960/720)–preset的参数主要调节编码速度和质量的平衡,有ultrafast(转码速度最快,视频往往也最模糊)、superfast、veryfast、faster、fast、medium、slow、slower、veryslow、placebo这10个选项,从快到慢。-crf:v 为视频质量参数 constant rate factor,0-51,0为无损,51为最糟画质,默认23-pix_fmt 为像素模式pixel format,最常用格式为yuv420p, 其它yuv444p, rgb555le等

查看视频总帧数

ffprobe test.mp4 -select_streams v -show_entries stream=nb_frames -of default=nk=1:nw=1 -v quiet

获取视频的总时长

ffprobe test.mp4 -select_streams v -show_entries stream=duration -of default=nk=1:nw=1 -v quiet
ffprobe -i input -show_entries format=duration -v quiet -of csv="p=0"

按间隔帧来提取视频中的帧(从第1帧取到第1000帧,隔4帧取一次)

ffmpeg -i test.mp4 -vf "select=between(n\,1\,1000)*not(mod(n\,4))" -vsync 0 image_%05d.jpg

按时间间隔取帧(每0.5秒取一帧)

ffmpeg -i test.mp4 -vf "select=(gte(t\,0.5))*(isnan(prev_selected_t)+gte(t-prev_selected_t\,0.5))" -vsync 0 aaaaaaa_%05d.jpg

查看视频信息

ffprobe -v quiet -show_format -show_streams -print_format json test.mp4

录屏

ffmpeg -f gdigrab -i desktop -q:v 0.01 -vcodec mpeg4 -f mp4 out.mp4
-i 输入设备
-vcodec 视频编码格式
-f 视频封装格式
缺点只能录制视频,不能录制音频

音频相关

格式转换

ffmpeg -i input.mp2 output.wav
# 转换过程中也可以指定其他参数
ffmpeg -i null.ape -ar 44100 -ac 2 -ab 16k -vol 50 -f mp3 null.mp3-i代表输入参数
-acodec aac(音频编码用AAC)
-ar 设置音频采样频率
-ac  设置音频通道数
-ab 设定声音比特率
-vol <百分比> 设定音量

音频合成

# 直接拼接
ffmpeg -i "concat:input1.mp3|input2.mp3|input3.mp3" -c copy output.mp3
# 或者混合在一起
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT

音视频合成

如果音频比视频长,就会停在最后一帧继续播放音频
ffmpeg -i a.wav  -i a.avi out.avi

截取音频

ffmpeg64.exe -i 124.mp3 -vn -acodec copy -ss 00:00:00 -t 00:01:32 output.mp3

录制命令

# 录制屏幕,输出到d:/out.mp4
ffmpeg -f gdigrab -i desktop -f mp4 d:/out.mp4
# -r设置帧率
此命令用于录制视频,无法录制声音,按q退出

录制音频

# 查看设备
ffmpeg -f dshow -list_devices true -i dummy

# 录制麦克风
ffmpeg -f dshow -i audio="麦克风 (Realtek High Definition Audio)" -acodec libmp3lame audio.mp3
# 录制系统声音,立体声看不见可能是被禁用了
ffmpeg -f dshow -i audio="立体声混音 (Realtek High Definition Audio)" -acodec libmp3lame audio.mp3

同时录制音频视频

# 录制屏幕和系统声音
ffmpeg -f dshow -i audio="立体声混音 (Realtek High Definition Audio)" -f gdigrab -i desktop -f mp4 d:/out.mp4
# 录制屏幕和麦克风
ffmpeg -f dshow -i audio="麦克风 (Realtek High Definition Audio)" -f gdigrab -i desktop -f mp4 d:/out.mp4

ffmpeg --安装及简单使用(转视频格式)相关推荐

  1. ffmpeg学习日记604-指令-将视频格式转为H264格式

    ffmpeg学习日记604-指令-将视频格式转为H264格式 在第四篇中,想要解码视频,缺没有弄清楚怎样的一个数据流,现在又明晰了一点,所谓的h264编解码,并不是直接将视频格式,通过h264编解码为 ...

  2. ffmpeg学习日记612-指令-转换视频格式

    ffmpeg学习日记612-指令-转换视频格式 mkv转mp4 ffmpeg -i LostInTranslation.mkv -codec copy LostInTranslation.mp4 Li ...

  3. FFmpeg 基础库(一)视频格式

    1.1 视频格式 视频格式可以分为适合本地播放的本地影像视频和适合在网络中播放的网络流媒体影像视频两大类.尽管后者 在播放的稳定性和播放画面质量上可能没有前者优秀,但网络流媒体影像视频的广泛传播性使之 ...

  4. 格式工厂绿色便携版,无需安装直接运行,专注视频格式转换软件

    哈喽,大家晚上好呀,经常会有小伙伴会问我,有没有一些格式转换的问题,很多小伙伴都需要对格式处理,因为上次已经给大家推荐了手机上的,所以今天就来一款电脑端的,安排! 测试设备:win10 软件概要:无毒 ...

  5. 利用python加上ffmpeg,ffmpy,做一个音视频格式转换器

    利用python加上ffmpeg,可以做一个简单的音乐或者视频格式转换器. 可以利用PyQt5做界面,本例中比较简单: 流程非常简单,点击"选择源文件",选取要转换的音频或者视频文 ...

  6. ffmpeg转换avi、mp4等视频格式为yuv格式

    使用ffmpeg转换视频文件为yuv420(NV12)格式命令: ffmpeg -i xxx.avi -pix_fmt nv12 -s 2880x1620 -ss 00:03:12 -t 00:00: ...

  7. FFmpeg安装及其简单使用之下载ts视频

    1.看不懂的转中文,下载https://www.ffmpeg.org/download.html  2.根据你的系统选择,以Windows为例 3.下载对应版本,Linux的下载前几个,Windows ...

  8. 利用FFmpeg在macOS中批量转换视频格式

    find ./ -name '*.mov' -exec sh -c 'ffmpeg -i "$0" "${0%%.mov}.mp4"' {} \;

  9. 【FFmpeg】使用 FFmpeg 处理音视频格式转换流程 ( 解复用 | 解码 | 帧处理 | 编码 | 复用 )

    FFmpeg 系列文章目录 [FFmpeg]Windows 搭建 FFmpeg 命令行运行环境 [FFmpeg]FFmpeg 相关术语简介 [FFmpeg]FFmpeg 相关术语简介 二 [FFmpe ...

最新文章

  1. zookeeper安装和使用 windows环境(转)
  2. 如果你在2018面试前端,那这篇文章最好看一看!
  3. 去掉easyui datagrid内部虚线的方式。
  4. Linux系统正则表达式用法笔记
  5. oracle vm 安装虚拟机小bug
  6. C程序设计语言现代方法14:预处理器
  7. python编程是啥-什么是Python编程课程
  8. c++自底向上算符优先分析_Python语言元素之运算符
  9. C++实现员工信息管理系统
  10. 人人商城删除后台菜单“小程序”
  11. MATLAB 粒子群算法,例题与常用模版
  12. 我家云刷机omv如何更改设置文件夹权限
  13. qt下开发mqtt的访问程序
  14. 腾讯Redis压轴笔记,成功入职阿里
  15. APICloud实战--每日生鲜App
  16. linux添加fcitx输入法,Ubuntu下轻松安装FCITX输入法
  17. win8信息服务器不可用怎么办,Win8打印机出现RPC服务器不可用怎么办?
  18. 【最新】Firefox Manifest V3:进展及下一步计划
  19. 苟延残喘,回光返照:从Cheetah 10K.7到Cheetah NS
  20. 201571030121《小学四则运算练习软件软件需求说明》结对项目报告

热门文章

  1. java毕业设计汽车4S服务管理系统(附源码、数据库)
  2. PyTorch实现前馈神经网络(手动)
  3. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java果蔬信息网站25890
  4. killall的一些用法
  5. CSS-通过伪类画弧形背景
  6. 怎么从零开始制作视频动画? | 万彩动画大师
  7. 纪念古龙诞辰:论古龙的江湖为何没有一“tong”?
  8. 200条装修小常识①
  9. 触目惊心:2015十大最具影响力的数据泄密事件
  10. 自己DIY装机后,如何使用U盘装系统