FFmpeg常用基本命令行
参考:https://www.jianshu.com/p/f07f0be088d0
https://www.jianshu.com/p/91727ab25227
ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ... ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件] 参数选项: 1、-an: 去掉音频 2、-vn: 去掉视频 3、 -acodec: 设定音频的编码器,未设定时则使用与输入流相同的编解码器。音频解复用在一般后面加copy表示拷贝 4、 -vcodec: 设定视频的编码器,未设定时则使用与输入流相同的编解码器,视频解复用一般后面加copy表示拷贝 5、–f: 输出格式(视频转码) 6、 -bf: B帧数目控制 7、 -g: 关键帧间隔控制(视频跳转需要关键帧) 8、 -s: 设定画面的宽和高,分辨率控制(352*278) 9、 -i: 设定输入流 10、 -ss: 指定开始时间(0:0:05) 11、 -t: 指定持续时间(0:05) 12、 -b: 设定视频流量,默认是200Kbit/s 13、 -aspect: 设定画面的比例 14、 -ar: 设定音频采样率 15、 -ac: 设定声音的Channel数 16、 -r: 提取图像频率(用于视频截图) 17、 -c:v: 输出视频格式 18、 -c:a: 输出音频格式 19、 -y: 输出时覆盖输出目录已存在的同名文件
一、获取视频信息
1、查看本地的视频信息
ffmpeg -i D:\AI\bili_data\output.mp4
2、查看远程http视频信息
ffmpeg -i http://static.tripbe.com/videofiles/20121214/9533522808.f4v.mp4
3、从视频截取图片,1秒一个
ffmpeg.exe -i D:/test.mp4 -r 1 -q:v 2 -f image2 -y D:/test/image_%03d.jpg
def cutVideo(self, videoPath,save_name,start_time,length): ''' 小视频剪切 :param videoPath: 源视频文件 :param save_name: 剪切的小视频 :param start_time: 开始时间,秒 :param length: 时长,秒 :return: ''' FFMPEG_PATH = 'D:/FFmpeg/bin/ffmpeg.exe' ffmpeg = FFMPEG_PATH + ' -y -i %s -ss %s -t %s -acodec copy -vcodec copy -async 1 %s' % ( videoPath, start_time, length, save_name) # subprocess.call(ffmpeg) subprocess.Popen(ffmpeg, shell=True, stdin=subprocess.PIPE) def cutPictureVideoByOneSecond(self, videoPath,pictFile): ''' 从视频中剪切图片,1秒1个 :param videoPath: 视频文件 'D:\test\清扬.mp4' :param pictFile: 保存图片文件 D:/test/image_%03d.jpg :return: ''' FFMPEG_PATH = 'D:/FFmpeg/bin/ffmpeg.exe' ffmpeg = FFMPEG_PATH + ' -i %s -r 1 -q:v 2 -f image2 -y %s' % ( videoPath, pictFile) # subprocess.call(ffmpeg) subprocess.Popen(ffmpeg, shell=True, stdin=subprocess.PIPE)
二、通用选项
1、-L 查看ffmpeg工具版本
ffmpeg -L
2、-h 查看帮助
ffmpeg -h
3、-codecs 编解码方式
4、-f fmt 强迫采用格式fmt (文件格式,如wav, avi等)如不指定该选项,则根据文件扩展名自动探测格式
5、-i filename 输入文件
6、-y 覆盖输出文件
7、-t duration 设置录制/转码的时长 单位秒,也支持hh:mm:ss格式
8、-ss position 指定起始时间,hh:mm:ss格式也支持 ,例如:下面等效
ffmpeg -ss 20 -i D:\AI\bili_data\test.mp4 -t 30 D:\AI\bili_data\output1.mp4
ffmpeg -ss 00:00:20 -i D:\AI\bili_data\test.mp4 -t 30 D:\AI\bili_data\output1.mp4
9、-fs limit_size set the limit file size in bytes
10、-ac 设置声道数 -ac 1 1就是单声道 ,节省一半容量
11、-b:v 主要是控制平均码率。-b:v 2000k
12、-vcodec 视频编码格式转换 强制使用codec编解码方式
13、-acodec 音频编码方式 是aac ffmpeg -i test.mp4 -acodec aac -vn output.aac
14、-vn 不做视频记录
15、-an 不做音频记录
16、转码 ffmpeg -i h265.ts -vcodec h264 -acodec aac -strict -2 h264.mp4