简单整理FFmpeg相关命令集

这篇具有很好参考价值的文章主要介绍了简单整理FFmpeg相关命令集。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

FFmpeg相关命令集

简单整理了FFmpeg相关命令,主要包括ffplay播放控制和媒体播放命令、ffmpeg命令相关参数以及常用的提取音视频等命令。

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案,有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。
简单整理FFmpeg相关命令集,音视频基础,ffmpeg,音视频

FFmpeg整体结构:
简单整理FFmpeg相关命令集,音视频基础,ffmpeg,音视频
ffmpeg/ffplay/ffprobe区别

  • ffmpeg:Hyper fast Audio and Video encoder超快音视频编码器
  • ffplay:Simple media player简单媒体播放器
  • ffprobe:Simple multimedia streams analyzer简单多媒体流分析器

ffmpeg音视频处理流程

简单整理FFmpeg相关命令集,音视频基础,ffmpeg,音视频

1.ffmpeg命令分类查询

命令参数 内容 命令参数 内容
-version 版本 -bsfs 可用比特流filter
-buildconf 编译配置 -protocols 显示可用的协议
-formats 显示可用格式( muxers+demuxers) -filters 显示可用的过滤器 可用的过滤器
-muxers 显示可用复用器 -pix_fmts 显示可用的像素格式
-demuxers 显示可用解复用器 -layouts 显示标准声道名称
-codecs 显示可用编解码器( decoders+encoders) -sample_fmts 显示可用的音频采样格式
-decoders 显示可用解码器 -colors 显示可用的颜色名称
-encoders 显示可用编码器

2.ffplay命令

2.1 ffplay播放控制

选项 说明 选项 说明
q, ESC 退出播放 t 循环切换字幕流
f 全屏切换 c 循环切换节目
p, SPC 暂停 w 循环切换过滤器或显示模式
m 静音切换 s 逐帧播放
9, 0 9减少音量,0增加音量 left/right 向后/向前拖动10秒
down/up 向后/向前拖动1分钟 鼠标右键单击 拖动与显示宽度对应百分比的文件进行播放
a 循环切换音频流 鼠标左键双击 全屏切换
v 循环切换视频流

2.2 ffplay命令选项

选项 说明
-x width 强制显示宽带。
-y height 强制显示高度。
-pixel_format format 格式设置像素格式
-an 禁用音频(不播放声音)
-vn 禁用视频(不播放视频)
-sn 禁用字幕(不显示字幕)
-ss pos 根据设置的秒进行定位拖动,注意时间单位:比如’55’ 55 seconds, ‘12:03:45’ ,12 hours, 03 minutes and 45 seconds, ‘23.189’ 23.189 second
-t duration 设置播放视频/音频长度,时间单位如 -ss选项
-nodisp 关闭图形化显示窗口,视频将不显示
-noborder 无边框窗口
-volume vol 设置起始音量。音量范围[0 ~100]
-f fmt 强制使用设置的格式进行解析。比如-f s16le
-window_title title 设置窗口标题(默认为输入文件名)
-showmode mode 设置显示模式,可用的模式值:0 显示视频,1 显示音频波形,2 显示音频频谱。缺省为0,如果视频不存在则自动选择2

2.3常用ffplay媒体播放命令

  1.播放本地文件
    ffplay -window_title "test time" -ss 2 -t 10 -autoexit test.mp4
    ffplay buweishui.mp3
  2.播放网络流
    ffplay -window_title "rtmp stream" rtmp://202.69.69.180:443/webcast/bshdlive-pc
  3.播放YUV数据
    ffplay -pixel_format yuv420p -video_size 320x240 -framerate 5 yuv420p_320x240.yuv
    (-pixel_format 指定像素格式,-framerate 帧率)
  4.播放RGB数据
    ffplay -pixel_format rgb24 -video_size 320x240 -i rgb24_320x240.rgb
    ffplay -pixel_format rgb24 -video_size 320x240 -framerate 5 -i rgb24_320x240.rgb
  5.播放PCM数据
    ffplay -ar 48000 -ac 2 -f f32le 48000_2_f32le.pcm
  6.音视频同时变速
    ffplay -i test.mp4 -vf setpts=PTS/2 -af atempo=2
  1.双宫格
	ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -i 4.mp4 -filter_complex "nullsrc=size=640x480[base];[0:v]setpts=PTS-STARTPTS,scale=320x240[upperleft];[1:v]setpts=PTS-STARTPTS,scale=320x240[upperright];[base][upperleft]overlay=shortest=1[tmp1];[tmp1][upperright]overlay=shortest=1:x=320" out2.mp4
  2.四宫格
	ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -i 4.mp4 -filter_complex "nullsrc=size=640x480[base];[0:v] setpts=PTS-STARTPTS,scale=320x240[upperleft];[1:v]setpts=PTS-STARTPTS,scale=320x240[upperright];[2:v]setpts=PTS-STARTPTS, scale=320x240[lowerleft];[3:v]setpts=PTS-STARTPTS,scale=320x240[lowerright];[base][upperleft]overlay=shortest=1[tmp1];[tmp1][upperright]overlay=shortest=1:x=320[tmp2];[tmp2][lowerleft]overlay=shortest=1:y=240[tmp3];[tmp3][lowerright]overlay=shortest=1:x=320:y=240" out3.mp4

3 ffmpeg命令

3.1ffmpeg命令参数说明

ffmpeg命令行参数解释:
ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件]
ffmpeg [[ options ][ -i input_file ]]… {[ options ] output_file}…

1.主要参数

-i 设定输入流
-f 设定输出格式(format)
-ss 开始时间
-t 时间长度

2.音频参数

-aframes 设置要输出的音频帧数
-b:a 音频码率
-ar 设定采样率
-ac 设定声音的Channel数
-acodec 设定声音编解码器,如果用copy表示原始编解码数据必须被拷贝。
-an 不处理音频
-af 音频过滤器

3.视频参数文章来源地址https://www.toymoban.com/news/detail-794370.html

-vframes 设置要输出的视频帧数
-b 设定视频码率
-b:v 视频码(与上一条一样)
-r 设定帧速率
-s 设定画面的宽与高
-vn 不处理视频
-aspect aspect 设置横纵比 4:3 16:9 或 1.3333 1.7777
-vcodec 设定视频编解码器,如果用copy表示原始编解码数据必须被拷贝。
-vf 视频过滤器

3.2 ffmpeg命令提取音视频数据

  1.保留封装格式
	  ffmpeg -i test.mp4 -acodec copy -vn audio.mp4
	  ffmpeg -i test.mp4 -vcodec copy -an video.mp4
  2.提取视频 
	  保留编码格式:ffmpeg -i test.mp4 -vcodec copy -an test_copy.h264
	  指定格式:ffmpeg -i test.mp4 -vcodec libx264 -an test.h264
  3.提取音频
	  保留编码格式:ffmpeg -i test.mp4 -acodec copy -vn test.aac
	  指定格式:ffmpeg -i test.mp4 -acodec libmp3lame -vn test.mp3

3.3 ffmpeg常用命令

  1.保持编码格式
	  ffmpeg -i test.mp4 -vcodec copy -acodec copy test_copy.ts 
	  ffmpeg -i test.mp4 -codec copy test_copy2.ts
  2.修改音视频码率
	  ffmpeg -i test.mp4 -b:v 400k -b:a 192k output_bva.mp4
  3.修改视频分辨率
	  ffmpeg -i test.mp4 -s 480x270 output_480x270.mp4
  4.修改音频采样率
	  ffmpeg -i test.mp4 -ar 44100 output_44100hz.mp4
  5.截取视频
	  ffmpeg -i believe.mp4 -ss 00:03:00 -t 10 -codec copy 1.mp4
  1.mp4转ts
	  ffmpeg -i 1.mp4 -codec copy -vbsf h264_mp4toannexb 1.ts
  2.mp4转flv
	  ffmpeg -i 1.mp4 -codec copy 1.flv
  1.截取一张352x240尺寸大小的,格式为jpg的图片
	  ffmpeg -i test.asf -y -f image2 -t 0.001 -s 352x240 a.jpg
  2.把视频的前30帧转换成一个Animated Gif
	  ffmpeg -i test.asf -vframes 30 -y -f gif a.gif
  3.截取指定时间的缩微图
  	  ffmpeg -i test.avi -y -f image2 -ss 8 -t 0.001 -s 350x240 test.jpg

3.4 音视频录制

  1.录制视频(默认参数)
	 桌面:ffmpeg -f dshow -i video="screen-capture-recorder" v-out.mp4
	 摄像头: ffmpeg -f dshow -i video="Integrated Webcam" -y v-out2.flv (要根据自己摄像头名称)
  2.录制声音(默认参数)
	 系统声音:ffmpeg -f dshow -i audio="virtual-audio-capturer" a-out.aac
	 系统+麦克风声音:ffmpeg -f dshow -i audio="麦克风 (Realtek Audio)"-f dshow -i audio="virtual-audio-capturer" -filter_complex amix=inputs=2:duration=first: dropout_transition=2 a-out2.aac
  3.同时录制声音和视频(默认参数)
	 ffmpeg -f dshow -i audio="麦克风(Realtek Audio)" -f dshow -i audio="virtual-audio- capturer" -filter_complex amix=inputs=2:duration=first:dropout_transition=2 -f dshow -i video="screen-capture-recorder" -y av-out.flv

到了这里,关于简单整理FFmpeg相关命令集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • adb 命令集

    adb 查看app启动时间 1.清除时间 2.启动应用并记录 TotalTime: 491 adb 查看分辨率、dpi 分辨率 Physical size: 1080x2340 dpi: Physical density: 480 adb 捕获logcat pushpull 文件 push e盘文件到sdcard pull sdcard文件到e盘 adb 截屏 批量安装apk

    2024年02月07日
    浏览(54)
  • HCIA配置命令集

    目录 扩展 交换机 路由器 路由器网关配置 DHCP服务器 Telnet   :远程登录协议     静态路由配置     动态路由 OSPF RIP NAT—网络地址转换 ACL—访问控制列表 ACL的分类: 配置 配置基础ACL   : 例一: 例二: 配置高级ACL   : 例一: 例二: Huaweisave 一保存配置 Huaweireset  s

    2024年02月16日
    浏览(40)
  • 【Redis】Redis基础命令集详解

    一、基础命令 1、ping(心跳命令) 键入ping命令,若看到PONG响应,则说明客户端与Redis的连接时正常的。 2、get/set(读写键值命令) set key value 会将指定 key-value 写入到DB。 get key 则会读取指定key的value值。 3、select(切换数据库) redis默认有 16 个数据库。这个在 Redis Desktop M

    2023年04月18日
    浏览(48)
  • git常用命令集合及其演示

    表示有一个文件test1.txt被修改过内容,test3.txt没有被加载到暂存区里 当前作为第一个版本 假设修改了test3.txt里面的内容 表示有个文件发生变化,git add添加到暂存区, commit之后暂存区会清空的, 添加有个p2版本 回滚后 删除的文件也可以通过git回滚 在dev分支提交版本 commit之

    2024年01月17日
    浏览(52)
  • npm yarn pnpm 命令集

    安装依赖 安装某个依赖 安装到全局(dependencies) 安装到线下(devDependencies) 卸载某个依赖 卸载全局依赖 清除npm缓存 如果清除缓存报禁止--force错误 可以使用以下这条 安装pnpm 打开CMD命令行 输入 查看版本号 安装依赖 安装某个依赖 删除某个依赖 更新所有依赖 更新某个依赖

    2024年02月12日
    浏览(57)
  • 【Git】git常用命令集合

      Git是现代软件开发不可或缺的版本控制工具,它可以追踪文件的变化、协同开发以及管理代码版本。掌握Git的常用命令对于开发人员来说至关重要。本文将为你介绍一些Git常用命令,帮助你轻松驾驭版本控制。   详细介绍了Git的常用命令,涵盖了版本管理、分支操作、

    2023年04月08日
    浏览(69)
  • Linux命令集(Linux文件管理命令--rm指令篇)

    如下为笔者总结出在 linux 中最常用的 rm 指令集 🌟希望能够帮助正在Linux路上奋斗的你🌟 删除文件或目录 短选项 长选项 描述 -f --force 忽略不存在的文件,不给出提示 -i --interactive 进行交互式删除操作,删除前逐一询问确认 -r --recursive 将指定目录及其子目录递归删除 -v --

    2024年02月01日
    浏览(56)
  • Linux命令集(Linux文件管理命令--rmdir指令篇)

    如下为笔者总结出在 linux 中最常用的 rmdir 指令集 🌟希望能够帮助正在Linux路上奋斗的你🌟 删除空目录 短选项 长选项 描述 -p --parents 递归删除父目录中不包含子目录或文件的空目录,同时删除父目录 -v --verbose 显示当前删除目录 -- --ignore-fail-on-non-empty 忽略非空目录删除失败

    2024年02月02日
    浏览(50)
  • Linux命令集(Linux文件管理命令--mv指令篇)

    如下为笔者总结出在 linux 中最常用的 mv 指令集 🌟希望能够帮助正在Linux路上奋斗的你🌟 移动或重命名文件或目录 短选项 长选项 描述 -b -- 在执行覆盖前,为目标文件创建一个备份 -f --force 不提示用户直接强制覆盖目标文件而进行操作 -i --interactive 如果目标文件已经存在,

    2024年02月02日
    浏览(58)
  • Linux命令集(Linux文件管理命令--CP指令篇)

    如下为笔者总结出在 linux 中最常用的 CP 指令集 🌟希望能够帮助正在Linux路上奋斗的你🌟 复制文件或目录 短选项 长选项 描述 -a --archive 复制文件或目录,保留链接、文件属性,并复制目录下的所有内容;等同于 -dpR 参数组合 -b --backup=CONTROL 创建备份文件,若目标文件已经存

    2024年02月03日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包