安装
Linux直接通过包管理器安装,Windows则在官网下载二进制文件并添加到PATH即可使用ffmpeg。
基本使用
FFmpeg可以自动识别输入和输出的格式(通过后缀名或读取信息),并进行简单的转换:
1 2
| # -i 表示后面紧跟一个输入 ffmpeg -i from_video.mp4 to_video.avi
|
如果想要指定转换使用的编码器,码率等:
1 2 3
| ffmpeg -i from.avi -c:v libx264 -b:v 1000k out.mp4 # 该命令输入一个avi文件,使用libx264编码器编码视频,音频流让ffmpeg自行处理,且视频码率设置为1000kbps,输出到out.mp4。 # 这里原视频里的音频流一般会被压缩,也会被自动转换为MP4支持的格式。
|
如果想要使用硬件:
1
| ffmpeg -hwaccel cuvid -c:v h264_cuvid -i input.xx -c:v h264_nvenc -preset slow output.xx
|
更多高级参数建议看官方文档!
一图流视频生成
Step 1 生成静帧视频
1
| ffmpeg -loop 1 -r <每秒帧数> -t <音频秒数/分号间隔时长> -f image2 -i <静帧图片路径> -c:v libx264 -crf 30 -y SinglePictureVideo.mp4
|
获取音频的秒数可以直接ffmpeg -i <音频文件>,输出的信息里面的带有长度
Step 2 将静帧视频与音频合并
1
| ffmpeg -i SinglePictureVideo.mp4 -i <音频文件> -c:v copy -c:a copy -y <输出文件>.flv
|
FLV仅支持ACC与MP3音频
提取音频、视频流
1
| ffmpeg -i Source.mp4 -vn -codec copy out.xxx
|
-vn:屏蔽视频流,达到提取音频流效果。换为-an即可变为提取视频流。
-codec copy:直接复制流,不转码。
请小心最后的输出格式。