视频转码
$ ffmpeg -i input.mp4 -c:v h264_qsv output.mp4
列出编、解码器
$ ffmpeg -encoders # 列出编码器
$ ffmpeg -decoders # 列出解码器
列出 dshow 设备
$ ffmpeg -list_devices true -f dshow -i dummy
录制屏幕和混音
$ ffmpeg -f gdigrab -i desktop -f dshow -i audio="virtual-audio-capturer" -f dshow -i audio="麦克风 (Realtek Audio)" -filter_complex amix=inputs=2:duration=first:dropout_transition=0 -c:v h264_qsv -r 50 -b:v 5000k output.mp4
# -c:v 指定编码器,v为高质量
# h264_qsv h264编码,intel qsv硬件加速
# -r 指定fps
# -b:v 指定bitrate
# -filter_complex amix=inputs=2:duration=first:dropout_transition=0 将两个音频混流
播放视频
$ ffplay input.mp4
查看视频信息
$ ffmpeg -i input.mp4 # 查看视频编码信息
$ ffprobe -hide_banner -show_streams -v error -select_streams v -print_format json -i input.mp4 # 查看视频详细信息
音视频分离/合并
$ ffmpeg -i input.mp4 -vcodec copy -an output.mp4 # 去掉视频中的音频
$ ffmpeg -i input.mp4 -acodec copy -vn output.mp3 # 提取视频中的音频
$ ffmpeg -y –i input.mp4 –i input.mp3 –vcodec copy –acodec copy output.mp4 # 音视频合并
# -an 去掉音频
# -vn 去掉视频
# -y 覆盖输出文件
# -vcodec 指定视频编码器,copy 表示与原视频相同
# -acodec 指定音频编码器
# -vcodec copy -acodec copy 可以简化为 -c copy
剪切视频
$ ffmpeg -ss 0:0:30 -t 0:1:0 -i input.mp4 -c copy output.mp4
# -ss 开始时间
# -t 持续时间
合并视频
$ ffmpeg -f concat -i filelist.txt -c copy output.mp4
其中,filelist.txt
文件的内容:
file ./input1.mp4
file ./input2.mp4
file ./input3.mp4
视频/音频变速
$ ffmpeg -i input.mp4 -filter:v setpts=0.5*PTS output.mp4 # 视频变速
$ ffmpeg -i input.mp3 -filter:a atempo=2.0 output.mp3 # 音频变速