FFmpeg常用命令

  1. 视频剪辑

ffmpeg -ss 1:23.456 -t 15 -i ./video.mp4 -c copy ./out.mp4

表示剪辑从1分23.456秒开始15秒的视频,-c:copy 表示不编码,视频直接复制

  1. 视频格式转换

ffmpeg -i video.mp4 video.avi

表示将mp4格式视频转换为avi格式,ffmpeg会根据文件后缀自动判断视频格式类型

  1. 将直播媒体保存至本地文件

ffmpeg -i rtmp://server/live/streamName -c copy dump.flv

该命令会将直播流保存到本地

  1. 视频转图片

ffmpeg -i 1.mp4 ./png/%04d.png

将1.mp4转换成图片,并保存到当前目录的png文件夹下。

图片的数目是根据视频的帧率定的。比如15秒的视频,帧率为30,转换后图片的数目 = 15 x 30 = 450。数目有时候没有那么精确,但是差别不大。%04d表示图片的命名格式是4位数字,不足4位,前面补0。

  1. 图片转视频

ffmpeg -i ./png/%04d.png 1.mp4

将png目录下的图片转换为视频。

测试过程中,默认的帧率是25,像素格式是yuv444p。也可以自己设置这些参数。

ffmpeg -r 30 -i ./png/%04d.png -pix_fmt yuv420p 420.mp4

上面的命令表示,将图片转为视频,帧率为30,像素格式为yuv420p。

  1. 提取视频

ffmpeg -i va.mp4 -an -c:v copy vo.mp4

提取文件中的视频,-an 表示去掉音频;-c:v copy 表示复制视频,如果不加该选项,将进行重新编码,速度较慢。

  1. 提取音频

ffmpeg -i va.mp4 -vn -c:a copy ao.aac

提取文件中的视频,-vn 表示去掉音频;-c:a copy 表示复制视频,如果不加该选项,将进行重新编码,速度较慢。

以后碰到音视频可以直接复制的,就加上复制选项,速度很快。

  1. 合并音频和视频

ffmpeg -i audio.mp3 -i video.mp4 -c copy va.mp4

将音频和视频合并。-c copy 表示直接复制,如果不加该选项,将进行重新编码,速度较慢。

  1. 视频拼接

把需要拼接的视频文件名称写到一个文件中

video.txt内容如下:

file '1.mp4'

file '2.mp4'

ffmpeg -f concat -i video.txt -c copy concat.mp4

上面命令将1.mp4 和 2.mp4合并成一个视频文件。

  1. 视频添加水印

ffmpeg -i va.mp4 -vf "drawtext=text='Logo':fontcolor=white:fontsize=24:x=100:y=100" -c:a copy text.mp4

在视频上添加"Logo"文字水印,字体颜色为白色,字体大小为24,位于(100,100)处。

这是使用滤镜来添加的,比较简单。添加文字需要ffmpeg 编译的时候增加 --enable-libfreetype 选项。

也可以添加图片水印,如下:

ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=50:50" output.mp4

该watermark.png为水印图片。

11、视频去水印

ffmpeg -i input.mp4 -filter_complex "[0:v]delogo=x=420:y=920:w=1070:h=60" -ss 00:00:37 -to 00:05:17 -c:a copy output.mp4

该命令表示通过滤镜去除水印,水印的位置为(x,y),尺寸为wxh。视频的范围为从00:00:37开始,到00:05:17结束。

这种方式其实是用水印附近的像素填充水印的位置,对于纯色位置效果是可以的,对于一般的视频效果不好,如下图:

对于视频中的硬水印,目前感觉没有更好的办法。网上很多AI去水印的,效果也不好。如果有好的思路,欢迎交流。

相关推荐
aaon223577 小时前
ubuntu ffmpeg 安装踩坑
linux·ubuntu·ffmpeg
m0_748245179 小时前
SpringCloud-使用FFmpeg对视频压缩处理
spring·spring cloud·ffmpeg
iummature16 小时前
FFmpeg命令
ffmpeg
渔舟唱晚@17 小时前
FFmpeg+WebSocket+JsMpeg实时视频流实现方案
websocket·网络协议·ffmpeg
xcg3401231 天前
关于视频抽帧调用虹软人脸识别的BufferedImage读取优化策略
ffmpeg·音视频·视频抽帧
繁依Fanyi2 天前
使用 FFmpeg 剪辑视频指南
java·服务器·开发语言·ffmpeg·音视频
deadknight93 天前
定期自动统计大表执行情况
ffmpeg
cuijiecheng20185 天前
音视频入门基础:RTP专题(9)——FFmpeg接收RTP流的原理和内部实现
ffmpeg·音视频
偶是老李头5 天前
Ubuntu虚拟机NDK编译ffmpeg
linux·ubuntu·ffmpeg·android ndk
lucky-billy5 天前
Qt 中使用 ffmpeg 获取采集卡数据录制视频
qt·ffmpeg·音视频