FFmpeg入门之常用命令
ffmpeg常用命令
常用命令分类
ffmpeg
处理流程
基本信息查询
如命令行:
ffmpeg -codecs
录制命令
UBUNTU
上录制mp4的命令
ffmpeg -thread_queue_size 128 -f x11grab -video_size 1280x800 -framerate 30 -i :0.0 -f video4linux2 -video_size 400x300 -framerate 30 -i /dev/video0 -f alsa -ac 2 -i pulse -filter_complex '[0:v][1:v]overlay=x=main_w-overlay_w-10:y=main_h-overlay_h-10[out]' -map '[out]' -map 2:a -vcodec libx264 -acodec ac3 test.mp4
播放音频
#播放音频文件 播放过程中按w键能够显示音频波形图
ffplay test.mp3
循环播放
ffplay pm.mp4 -loop 10
播放完之后退出
ffplay -autoexit pm.mp4
设置播放窗口标题
ffplay -window_title test -loop 2 pm.mp4
多媒体格式转换
将mp4转换为flv文件
ffmpeg -i input.mp4 output.flv
处理原始数据命令
音频原始数据–pcm
视频原始数据–yuv
将当前mp4
数据生成原始yuv
数据
ffmpeg -i test.mp4 -an -c:v rawvideo -pix_fmt yuv420p ffmout.yuv
因为原始数据yuv
中没有宽高的信息,使用ffplay
播放的时候需要指定宽度
ffplay -s 1280x800 ffmout.yuv
提取原始音频
ffmpeg -i mkwqianfeng.mp4 -vn -ar 44100 -ac 2 -f s16le omkwqianfeng.pcm
-vn : video no
-ac 2:双声道
-f s16le: 有符号 16 位大小表示, little end
播放对应的原始音频
ffplay -ar 44100 -ac 2 -f s16le omkwqianfeng.pcm
滤镜命令
裁剪命令
# -vf : video f filter
# crop : 裁剪命令
# in_w-400 宽度减去 400 默认以中间为中心,总有两边进行裁剪,上下同理, 可以选定xy指定裁剪中心
# -c:v -- c编码方式 v视频
# -c:a -- 音频编码方式
ffmpeg -i mkwqianfeng.mp4 -vf crop=in_w-400:in_h-200 -c:v libx264 -c:a copy qianfengfilter.mp4
添加水印
ffmpeg -i out.mp4 -vf "movie=logo.png,scale=64:48[watermask];[in][watermask] overlay=30:10 [out]" water.mp4
删除水印
ffplay -i test.flv -vf delogo=x=806:y=20:w=70:h=80:show=1
视频缩小
ffmpeg -i out.mp4 -vf scale=iw/2:-1 scale.mp4
倍速播放
ffmpeg -i out.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" speed2.0.mp4
视频镜像
ffmpeg -i out.mp4 -filter_complex "[0:v]pad=w=2*iw[a];[0:v]hflip[b];[a][b]overlay=x=w" duicheng.mp4
画中画
ffmpeg -i out.mp4 -i out1.mp4 -filter_complex "[1:v]scale=w=176:h=144:force_original_aspect_ratio=decrease[ckout];[0:v][ckout]overlay=x=W-w-10:y=0[out]" -map "[out]" -movflags faststart new.mp4
录制画中画
ffmpeg -f avfoundation -i "1" -framerate 30 -f avfoundation -i "0:0"
-r 30 -c:v libx264 -preset ultrafast
-c:a libfdk_aac -profile:a aac_he_v2 -ar 44100 -ac 2
-filter_complex "[1:v]scale=w=176:h=144:force_original_aspect_ratio=decrease[a];[0:v][a]overlay=x=W-w-10:y=0[out]"
-map "[out]" -movflags faststart -map 1:a b.mp4
多路视频拼接
ffmpeg -f avfoundation -i "1" -framerate 30 -f avfoundation -i "0:0" -r 30 -c:v libx264 -preset ultrafast -c:a libfdk_aac -profile:a aac_he_v2 -ar 44100 -ac 2 -filter_complex "[0:v]scale=320:240[a];[a]pad=640:240[b];[b][1:v]overlay=320:0[out]" -map "[out]" -movflags faststart -map 1:a c.mp4
裁剪合并命令
ffmpeg -i mkwqianfeng.mp4 -ss 00:01:10 -t 10 cut.ts
合并
# input.txt 要合并的文件列表
ffmpeg -f concat -i input.txt out.flv
input.txt
格式file
后面跟上对应视频文件名,支持编码的各种视频文件
andrew@andrew-G3-3590:/work/test$ cat input.txt
file 'cut.ts'
file 'cut2.ts'
图片与视频互转命令
将视频转换为图片
# -r 1:每秒生成 一张图片, 图片帧率
# -f image2 : 图片格式是iamge2
# %3d : 10进制生成图片的序列
ffmpeg -i 元气.mp4 -r 1 -f image2 image-%3d.jpeg
直播推流与拉流
拉流
# 从指定rtmp网站上拉流,并存储到xxx.flv格式的文件中
ffmpeg -i rtmp://202.69.69.180:443/webcast/bshdlive-pc -c copy rtmptest.flv
推流
ffmpeg -re -i out.mp4 -c copy -f flv rtmp://server/live/streamName
转流
ffmpeg -i rtmp://server/live/originalStream -c:a copy -c:v copy -f flv rtmp://server/live/h264Stream
实时推流
ffmpeg -framerate 15 -f avfoundation -i "1" -s 1280x720 -c:v libx264 -f flv rtmp://localhost:1935/live/room
ffplay
播放yuv
数据
ffplay -pix_fmt nv12 -s 192x144 1.yuv
播放YUV中的Y平面
ffplay -pix_fmt nv21 -s 640x480 -vf extractplanes='y' 1.yuv
FFmpeg入门之常用命令相关推荐
- 【网络通信 -- 直播】FFMPEG 简介与常用命令总结
[网络通信 -- 直播]FFMPEG 简介与常用命令总结 [1]FFMPEG 简介 FFmpeg,项目的名称来自 MPEG 视频编码标准,"FF"代表"Fast Forw ...
- PM2入门及其常用命令
文章目录 一.PM2概述 1.简介 2.普通 node 进程的缺陷 3.PM2优点 4.PM2安装 二.PM2命令详情 1.PM2常用命令 1.1 启动 1.2 管理进程 1.3 应用信息查看 1.4 ...
- Systemd 入门及常用命令
目录 Systemd systemd架构 systemd 系统管理 管理系统 查看启动耗时 查看当前主机的信息 Unit 资源 查看当前系统的所有 Unit 查看系统状态和单个 Unit 的状态 Un ...
- Docker入门之常用命令
写在前面 细数当前最流行的技术莫过于容器化和人工智能了,而容器化技术能有今天的热度,Docker可谓功不可没. 让我们一起来回顾一下Docker 是什么? 是一种虚拟化技术 能够将应用程序自动部署到容 ...
- Linux入门学习-常用命令
一.常用命令 <1>.文件管理命令 1.ls:查看文件列表 语法:ls [option] 例:ls | grep finger //定位finger 常用option: -a 列出目录下的 ...
- Linux 入门基础——常用命令(一)
1. 初识 Linux Linux根据原生程度,分为两种: (1)内核版本: Linux不是一个操作系统,严格来讲,Linux只是一个操作系统中的内核.内核是什么?内核建立了计算机软件与硬件之间通讯的 ...
- FFMPEG转码常用命令研究
ffmpeg简介 官网链接是http://www.ffmpeg.org/上有说明,它是音视频的分离,转换,解码的完全解决方案. 其中最重要的就是libavcodec库.它被mplayer或者xine ...
- Linux入门之常用命令(15) lsof
查看磁盘空间: [root@ticketb ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 981M 203M 729M ...
- FFmpeg视频剪辑常用命令
如果要找一个用于音视频编辑的解决方案,FFmpeg无疑是极为优秀的. 前阵子在弄一个视频剪辑类的APP,把用到的常见的一些FFmpeg命令分享处理,供读者参考. 常见命令: 视频局部裁剪: -i in ...
最新文章
- C#数据库操作一点相关点。。。
- guava-collections
- 戴口罩也能刷门禁?疫情下AnalyticDB亮出社区管理的宝藏神器!
- 数据结构链表之栈,Python3简单实现——5
- ubuntu16.04 计算视觉算法相关软件安装 亲测可用
- 深度学习《WGAN模型》
- centso7.5 安装minconda3和创建项目所需python3环境
- 计量经济学(十)---模型选择:标准与检验
- cascader回显
- Python机器学习之决策树(使用西瓜数据集构建决策树,并将其可视化,graphviz程序下载)
- android手机diy,手把手教你如何DIY个性定制属于你的安卓手机浏览器
- mindmanager2021思维导图利器有效序列号秘钥
- 【物联网】23.物联网开发之感测系统 - GPS(GNSS)
- 多卡并行训练遇到的问题
- 心理学上最诡异的23张图!!
- VOLTE网络架构、接口与功能实体
- Android studio 生成JavaDoc文档
- BMfont制作图片中的自定义字体,无需字体文件
- keras.layers.Reshape方法
- 微信公众号H5页面实现扫一扫功能