1.下载
- http://ffmpeg.org/download.html
- 安装略,ubuntu直接apt即可
2.播放视频
ffplay video.mp4
3.播放音频
ffplay music.mp3
4.查看视频/音频属性
ffprobe video.mp4
5.视频后缀格式转换
ffmpeg -i video.mp4 output.mov
6.音频转换格式
ffmpeg -i music_flac.flac -acodec libmp3lame -ar 44100 -ab 320k -ac 2 out.mp3
- flac无损音频格式
- acodec: 指定音频编码器
- ar:设置音频采样率,默认使用原音频,一般采用48hz和44.1hz
- ab:指定音频比特率,默认是128k
- ac:设置声道数。1单声道,2双声道立体声。默认采用原音频
7.视频压制
ffmpeg -i video.mp4 -s 1920x1080 -pix_fmt yuv420p -vcodec libx264 -preset medium -profile:v high -level:v 4.1 -crf 23 -acodec aac -ar 44100 -ac 2 -b:a 128k video_avi.avi
- -s 1920x1080:缩放视频新尺寸(size)
- -pix_fmt yuv420p:pixel format,用来设置视频颜色空间。参数查询:ffmpeg -pix_fmts
- -vcodec libx264:video Coder Decoder,视频编码解码器
- -preset medium: 编码器预设。参数:ultrafast,superfast,veryfast,faster,fast,medium,slow,slower,veryslow,placebo
- -profile:v high :编码器配置,与压缩比有关。实时通讯-baseline,流媒体-main,超清视频-high
- -level:v 4.1 :对编码器设置的具体规范和限制,权衡压缩比和画质。
- -crf 23 :设置码率控制模式。constant rate factor-恒定速率因子模式。范围051,默认23。数值越小,画质越高。一般在828做出选择。
- -r 30 :设置视频帧率
- -acodec aac :audio Coder Decoder-音频编码解码器
- -b:a 128k :音频比特率.大多数网站限制音频比特率128k,129k
其他参考上一个教程
8.码率控制
(1) -qp :constant quantizer,恒定量化器模式
无损压缩的例子(快速编码)
ffmpeg -i input -vcodec libx264 -preset ultrafast -qp 0 output.mkv
无损压缩的例子(高压缩比)
ffmpeg -i input -vcodec libx264 -preset veryslow -qp 0 output.mkv
(2) -crf :constant rate factor,恒定速率因子模式
(3) -b :bitrate,固定目标码率模式。一般不建议使用
3种模式默认单遍编码
VBR(Variable Bit Rate/动态比特率) 例子
ffmpeg -i input -vcodec libx264 -preset veryslow output
ABR(Average Bit Rate/平均比特率) 例子
ffmpeg -i input -vcodec libx264 -preset veryslow -b:v 3000k output
CBR(Constant Bit Rate/恒定比特率) 例子
... -b:v 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k ...
9.提取视频/音频
(1)单独提取视频(不含音频流)
ffmpeg -i video.mp4 -vcodec copy -an video_silent.mp4
(2)单独提取音频(不含视频流)
ffmpeg -i video.mp4 -vn -acodec copy video_novideo.m4a
具备多个音频流的,如
Stream #0:2[0x81]:Audio:ac3,48000Hz,5.1,s16,384kb/s
Stream #0:3[0x82]:Audio:ac3,48000Hz,5.1,s16,384kb/s
Stream #0:4[0x80]:Audio:ac3,48000Hz,5.1,s16,448kb/s
针对性的单一的提取,例如提取第2条,用指令: -map 0:3
10.合并视频/音频
ffmpeg -i video_novideo.m4a -i video_silent.mp4 -c copy video_merge.mp4
11.截取,连接音视频
(1)截取
ffmpeg -i music.mp3 -ss 00:00:30 -to 00:02:00 -acodec copy music_cutout.mp3
截取60秒
ffmpeg -i music.mp3 -ss 00:00:30 -t 60 -acodec copy music_cutout60s.mp3
-sseof : 从媒体末尾开始截取
ffmpeg -i in.mp4 -ss 00:01:00 -to 00:01:10 -c copy out.mp4
ffmpeg -ss 00:01:00 -i in.mp4 -to 00:01:10 -c copy out.mp4
ffmpeg -ss 00:01:00 -i in.mp4 -to 00:01:10 -c copy -copyts out.mp4
把-ss放到-i之前,启用了关键帧技术,加速操作。但截取的时间段不一定准确。可用最后一条指令,保留时间戳,保证时间准确。
(2)连接音视频
ffmpeg -i "concat:01.mp4|02.mp4|03.mp4" -c copy out.mp4
不同格式的音视频可以连接在一起,但不推荐不同格式连接在一起。
建议使用Avidemux软件连接
12.截图,水印,动图
(1)截图.
截取第7秒第1帧的画面
ffmpeg -i video.mp4 -ss 7 -vframes 1 video_image.jpg
(2)水印
ffmpeg -i video.mp4 -i qt.png -filter_complex "overlay=20:80" video_watermark.mp4
(3)截取动图
ffmpeg -i video.mp4 -ss 7.5 -to 8.5 -s 640x320 -r 15 video_gif.gif
13.录屏/直播
(1)录屏
windows:
ffmpeg -f gdigrab -i desktop rec.mp4
ubuntu:
sudo ffmpeg -f fbdev -framerate 10 -i /dev/fb0 rec.mp4
gdigrab :ffmpeg中的一个组件。
只捕获视频.若要录屏,录音,获取摄像头,麦克风,换组件,用OBS Studio软件
(2)直播
ffmpeg -re i rec.mp4 按照网站要求编码 -f flv "你的rtmp地址/你的直播码"
标签:00,ffmpeg,音频,mp4,video,copy
From: https://www.cnblogs.com/wsxier/p/17742936.html