FFMpeg操作
ffmpeg -i "2024-03-07 18-27-40 1920x1080 H.mkv"
-c:v h264_nvenc
-preset slow
-crf 20 -r 30
"2024-03-07 18-27-40 1920x1080 HZ.mkv"
-loglevel error
日志级别
-f concat
拼接
-i
输入文件
-c:v h264_nvenc/hevc_nvenc
编解码器:视频同等参数下,硬解码率不如软解
-codecs
查看可用编码器
-preset
预设
-hq
高质量设置
视频质量(无损0-51最差)
-qp
固定QP量化,研究用途
-crf
固定码率因子,动态QP,文件存储,尽可能好的效果
-b/b:a/b:v
CBR固定码率,同下,流媒体
VBR动态码率,同下,流媒体,动静场景
-qscale q 使用固定的视频量化标度(VBR)
-qmin q 最小视频量化标度(VBR)
-qmax q 最大视频量化标度(VBR)
-qdiff q 量化标度间最大偏差 (VBR)
-qblur blur 视频量化标度柔化(VBR)
-qcomp compression 视频量化标度压缩(VBR)
ABR平均码率,同下,流媒体,阿里云默认
-bt
设置视频码率容忍度
-maxrate bitrate
设置最大视频码率容忍度
-minrate bitrate
设置最小视频码率容忍度
-bufsize size
设置码率控制缓冲区大小
-itsoffset
时间偏移
-padtop
设置顶部补齐的大小 像素单位
-padbottom/–padleft/–padright/–padcolor
设置补齐条颜色(hex,6个16进制的数,红:绿:蓝排列,比如 000000代表黑色)
---
-r
fps25
-b/b:a/b:v
bitrate
-aspect
横纵比4:3 16:9
-croptop size
设置顶部切除带大小 像素单位
-cropbottom/–cropleft/–cropright
eg. -b 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k
-vf/af
视频/音频过滤器(滤镜)
-vn/an/sn/dn
不记录视频轨/音轨/字幕/数据流
-ss 00:00:00
片段起始位置
-t 00:00:05
片段结束位置
-c
直接拷贝原始数据(而不是重新编码)
-y
在不询问的情况下覆盖输出文件
-pass 2
二次编码,选择处理遍数(1或者2)。两遍编码非常有用。第一遍生成统计信息,第二遍生成精确的请求的码率
-passlogfile file
二次编码的纪录文件名为file
-re
本地回流
Eg.
创建视频缩略图
ffmpeg -i input.mp4 -vf "fps=1/10,scale=-2:720" thumbnail-%03d.jpg
添加水印
ffmpeg -i input.mp4 -i input.jpg -filter_complex "overlay=100:100" output.mp4
高质量GIF动图
ffmpeg -i input.mp4
-ss 0 -t 3
-filter_complex [0:v]fps=15,scale=-1:256,split[a][b];[a]palettegen[p];[b][p]paletteuse
output.gif
屏幕录制
ffmpeg -hide_banner
-loglevel error
-stats -f gdigrab
-framerate 60
-offset_x 0 -offset_y 0
-video_size 1920x1080
-draw_mouse 1
-i desktop
-c:v h264_nvenc
-r 60 -pix_fmt yuv420p
-y screen_record.mp4
推流
ffmpeg
-hide_banner
-loglevel error
-f 30
-offset_x 0 -offset_y 0
-video_size 1920x1080
-draw_mouse 1
-re
-i desktop
-c:v h264_nvenc
-preset veryfast
-maxrate 1000k
-bufsize 2000k
-pix_fmt yuv420p
-g 50
-c:a aac
-b:a 160k
-ar 44100
-ac 2
-f flv
rtmp://yourserver/live/stream
屏幕推流
ffmpeg
-f gdigrab
-framerate 30
-i desktop
-c:v libx264
-preset veryfast
-pix_fmt yuv420p
-g 50
-c:a aac
-b:a 160k
-ac 2
-ar 44100
-f flv
rtmp://home.muteteam.cn/live/io0288?pwd=114514
# -re:这个参数告诉FFmpeg以实时速度读取输入文件,这对于直播推流非常重要,因为它可以防止视频数据在推流之前被过快地消耗掉。
#-i desktop 通常指的是捕获桌面作为输入源,但是你需要指定捕获桌面的方法,比如使用 x11grab(Linux)或 avfoundation(macOS)等
#-stats 详细统计信息
#-f gdigrab 捕获方法
#-c:v libx264:设置视频编码器为libx264,这是一个常用的H.264编码器。
#-preset veryfast:设置编码速度预设为veryfast。这个参数会影响编码速度和视频质量之间的平衡。veryfast是最快的预设,但可能会牺牲一些视频质量。
#-maxrate 1000k:设置视频编码的最大比特率为1000kbps。
#-bufsize 2000k:设置比特率控制缓冲区的大小为2000kbps。这有助于平滑比特率波动。
#-pix_fmt yuv420p:设置像素格式为yuv420p。这是一个常见的像素格式,与大多数RTMP服务器兼容。
#-c:a aac:设置音频编码器为aac,这是一个常用的音频编码格式。
#-b:a 160k:设置音频编码的比特率为160kbps。
#-ar 44100:设置音频采样率为44100Hz,这是一个常见的采样率。
#-ac 2:设置音频通道数为2,即立体声。
#-f flv:设置输出格式为flv。FLV是Adobe Flash Video的格式,常用于在线视频流。
#rtmp://yourserver/live/stream:指定RTMP服务器的URL和流名称。您需要将yourserver和stream替换为您的RTMP服务器地址和流名称。
#请确保您的FFmpeg版本支持RTMP推流,并且已经安装了必要的编解码器。另外,记得替换input.mp4和RTMP URL为您自己的输入文件和服务器信息。
个人常用
ffmpeg -codecs
ffmpeg -i input.mkv -c:v libx264 -vf "scale=-2:720" -crf 20 -r 30 out.mkv
ffmpeg -i input.mp4 -c:v libtheora -q:v 7 -c:a libvorbis -q:a 4 intro.ogv
Comments | NOTHING