ffmpeg常用命令

#通过ffmpeg查看文件属性,使用参数-hide_banner隐藏ffmpeg本身信息
ffmpeg -i video_file.mp4 -hide_banner 
# 格式转换,使用 -qscale 0 来保留原始的视频质量
ffmpeg -i video_input.wav -qscale 0 video_output.mp4
# 格式转换,使用 -c:a (音频) 和 -c:v (视频) 来指定编码器名称
ffmpeg -i video_input.mp4 -c:v copy -c:a libvorbis video_output.avi
# 音视频分离,-vn是只提取音频,-an是只提取视频,-ab指定音频编码比特率,-ab 也可以使用 -b:a 来替代,-vb指定视频编码比特率,-ar指定音频采样率,ac 指定声道数, -f指定音频格式, 
ffmpeg -i video.mp4 -vn -ab 128k audio.mp3
# 从视频中提取图片,-r 代表了帧率(一秒内导出多少张图像,默认25), -f 代表了输出格式(image2 实际上上 image2 序列的意思)
ffmpeg -i video.mp4 -r 1 -f image2 image-%3d.png
# 缩放视频
fmpeg -i video_input.mov -s 1024x576 video_output.mp4
# 使用-aspect 来更改长宽比
ffmpeg -i video_input.mp4 -aspect 4:3 video_output.mp4
# 给音频添加封面
ffmpeg -loop 1 -i image.jpg -i audio.wav -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4
# 给视频添加字幕
ffmpeg -i video.mp4 -i subtitles.srt -c:v copy -c:a copy -preset veryfast -c:s mov_text -map 0 -map 1 output.mp4
# 裁剪视频 -t支持数字和HH:MM:SS格式,数字格式是时长,从起始到指定时长,HH:MM:SS格式是结束时间,也可以通过 -ss 给出一个开始时间,-to 给出结束时间
ffmpeg -i input_video.mp4 -t 5 output_video.mp4 
ffmpeg -i input_audio.wav -t 00:00:05 output_audio.wav
# 录制屏幕,-f指定格式,-s指定宽高,-i指定屏幕
ffmpeg -f x11grab -s 1920x1080 -i :0.0 output.mp4
# 录制摄像头,-i 指定摄像头
ffmpeg -i /dev/video0 output.mkv
# 录制声音
ffmpeg -f alsa -i default output.mp3

# 通过过滤器缩放视频
## 缩放微指定的宽高
ffmpeg -i input.mp4 -vf "scale=w=800:h=600" output.mp4
## 按照原视频的比例缩放
ffmpeg -i input.mkv -vf "scale=w=1/2*in_w:h=1/2*in_h" output.mkv

# 裁剪视频
ffmpeg -i input.mp4 -vf "crop=w=1280:h=720:x=0:y=0" output.mp4 
ffmpeg -i input.mkv -vf "crop=w=3/4*in_w:h=3/4*in_h" output.mkv

# 视频旋转
ffmpeg -i input.avi -vf "rotate=90*PI/180" 
ffmpeg -i input.mp4 -vf "rotate=PI"

# 更改音量,volume是倍数
ffmpeg -i input.wav -af "volume=1.5" output.wav 
ffmpeg -i input.ogg -af "volume=0.75" output.ogg


# 更改视频播放速度
ffmpeg -i input.mkv -vf "setpts=0.5*PTS" output.mkv 
ffmpeg -i input.mp4 -vf "setpts=2*PTS" output,mp4

# 更改音频播放速度
ffmpeg -i input.wav -af "atempo=0.75" output.wav 
ffmpeg -i input.mp3 -af "atempo=2.0,atempo=2.0" ouutput.mp3

# 查看设备列表
ffmpeg -hide_banner -devices

# 查看avfoundation支持的参数
ffmpeg -h demuxer=avfoundation

# 查看支持的采集设备列表
ffmpeg -f avfoundation -list_devices true -i ""

# 采集摄像头画面
ffmpeg -f avfoundation -framerate 30 -video_size 640*480 -i output.yuv

# 播放摄像头采集画面
ffpaly output.yuv -pix_fmt uyvy422 -video_size 640*480 

  

posted @ 2024-05-22 22:30  NAVYSUMMER  阅读(68)  评论(0)    收藏  举报
交流群 编程书籍