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入门之常用命令相关推荐

  1. 【网络通信 -- 直播】FFMPEG 简介与常用命令总结

    [网络通信 -- 直播]FFMPEG 简介与常用命令总结 [1]FFMPEG 简介 FFmpeg,项目的名称来自 MPEG 视频编码标准,"FF"代表"Fast Forw ...

  2. PM2入门及其常用命令

    文章目录 一.PM2概述 1.简介 2.普通 node 进程的缺陷 3.PM2优点 4.PM2安装 二.PM2命令详情 1.PM2常用命令 1.1 启动 1.2 管理进程 1.3 应用信息查看 1.4 ...

  3. Systemd 入门及常用命令

    目录 Systemd systemd架构 systemd 系统管理 管理系统 查看启动耗时 查看当前主机的信息 Unit 资源 查看当前系统的所有 Unit 查看系统状态和单个 Unit 的状态 Un ...

  4. Docker入门之常用命令

    写在前面 细数当前最流行的技术莫过于容器化和人工智能了,而容器化技术能有今天的热度,Docker可谓功不可没. 让我们一起来回顾一下Docker 是什么? 是一种虚拟化技术 能够将应用程序自动部署到容 ...

  5. Linux入门学习-常用命令

    一.常用命令 <1>.文件管理命令 1.ls:查看文件列表 语法:ls [option] 例:ls | grep finger //定位finger 常用option: -a 列出目录下的 ...

  6. Linux 入门基础——常用命令(一)

    1. 初识 Linux Linux根据原生程度,分为两种: (1)内核版本: Linux不是一个操作系统,严格来讲,Linux只是一个操作系统中的内核.内核是什么?内核建立了计算机软件与硬件之间通讯的 ...

  7. FFMPEG转码常用命令研究

    ffmpeg简介 官网链接是http://www.ffmpeg.org/上有说明,它是音视频的分离,转换,解码的完全解决方案.  其中最重要的就是libavcodec库.它被mplayer或者xine ...

  8. Linux入门之常用命令(15) lsof

    查看磁盘空间: [root@ticketb ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 981M 203M 729M ...

  9. FFmpeg视频剪辑常用命令

    如果要找一个用于音视频编辑的解决方案,FFmpeg无疑是极为优秀的. 前阵子在弄一个视频剪辑类的APP,把用到的常见的一些FFmpeg命令分享处理,供读者参考. 常见命令: 视频局部裁剪: -i in ...

最新文章

  1. C#数据库操作一点相关点。。。
  2. guava-collections
  3. 戴口罩也能刷门禁?疫情下AnalyticDB亮出社区管理的宝藏神器!
  4. 数据结构链表之栈,Python3简单实现——5
  5. ubuntu16.04 计算视觉算法相关软件安装 亲测可用
  6. 深度学习《WGAN模型》
  7. centso7.5 安装minconda3和创建项目所需python3环境
  8. 计量经济学(十)---模型选择:标准与检验
  9. cascader回显
  10. Python机器学习之决策树(使用西瓜数据集构建决策树,并将其可视化,graphviz程序下载)
  11. android手机diy,手把手教你如何DIY个性定制属于你的安卓手机浏览器
  12. mindmanager2021思维导图利器有效序列号秘钥
  13. 【物联网】23.物联网开发之感测系统 - GPS(GNSS)
  14. 多卡并行训练遇到的问题
  15. 心理学上最诡异的23张图!!
  16. VOLTE网络架构、接口与功能实体
  17. Android studio 生成JavaDoc文档
  18. BMfont制作图片中的自定义字体,无需字体文件
  19. keras.layers.Reshape方法
  20. 微信公众号H5页面实现扫一扫功能

热门文章

  1. hdu-1195--Open the Lock(BFS)
  2. Python基础知识一
  3. 码农人生——从未学过Android如何开发Android App 案例讲解-第002期案例
  4. 使用WSW将Nginx创建为Windows系统服务
  5. hover与click样式冲突
  6. iOS 不要使用tag传递TableViewCell的indexPath值
  7. 关于 mybatis-generator自定义注释生成 使用DefaultCommentGenerator重写来完成
  8. html5元素拖动 (转载黑桐)
  9. java实现随机验证码的图片
  10. Eclipse 4.4.2 取消空格键代码上屏