FFmpeg命令视频音频转码参数详解【汇总】

前言全局说明

FFmpeg命令转码参数详解

官网:https://ffmpeg.org/
官网下载:https://ffmpeg.org/download.html
官网下载源码:https://www.ffmpeg.org/releases/
镜像一:https://github.com/GyanD/codexffmpeg/releases
镜像二:https://www.gyan.dev/ffmpeg/builds/packages/


一、参数

1.1 FFmpeg 常用参数

参数 说明 备注
-i filename 指定输入文件(或直接写文件名,用| 竖线分割),在Linux下当然也能指定:0.0(屏幕录制)或摄像头。
-c:a 指定音频编码器 copy、mp3(libmp3lame)、aac、 全称: codec of audio ;
copy是直接拷贝视频中的原始的音频,不涉及音频的编解码,复制速度会很快。
示例:-c:a aac 指定音频编码器;
-c:v 指定视频编码器 copy、libx265 -c:v copy 复制
-crf 指定视频质量,范围为0-51,0为无损,23为默认值,数值越小,质量越高,文件越大
-f fmt 设定输出格式(音频或者视频格式)。
-y 覆盖已有文件。
-t duration 指定时长。
-fs limit_size 设置文件大小的上限。
-ss time_off 从指定的时间(单位为秒)开始,也支持[-]hh:mm:ss[.xxx]的格式。
-re 代表按照帧率发送,尤其在作为推流工具的时候一定要加入该参数,否则ffmpeg会按照最高速率向流媒体服务器不停地发送数据。
-map 指定输出文件的流映射关系。如果没有-map选项,则ffmpeg采用默认的映射关系。
例如:“-map 1:0-map 1:1”要求将第二个输入文件的第一个流和第二个流写入输出文件。

1.2 FFmpeg 视频、图像参数

参数 说明 备注
-bitexact 使用标准比特率。
-vb 指定视频比特率(bits/s)
-r rate 帧速率(fps)
-vframes 设置要输出的视频帧数
-b:v 设定视频码率 64k
-bufsize 缓存区大小 -bufsize 6000K 或 -bufsize 64k
-s 设定画面的宽与高
-vn 去除视频流
-aspect aspect 设置横纵比 4:3 16:9 或 1.3333 1.7777
-vcodec [none|copy|libx265 ...] 指定视频编解码器。copy表示原始编解码数据必须被拷贝; libx265表示使用libx265编码器 v是视频video,codec是解码器,后跟解码器名称
-vf 视频过滤器
qp 量化比例为0~51。qp越大,压缩越厉害,失真越严重,失去的信息越多,画面也就越模糊。
-hwaccels 查询系统支持的硬件加速器(用显卡处理视频)
-codecs 查询支持的编解码器
-maxrate 每帧的最高(最大)码率 -maxrate 5000K

1.3 FFmpeg 音频参数

参数 说明 备注
-acodec [none|copy|mp3|aac ...] 设定声音编解码器,如果用copy表示原始编解码数据必须被拷贝。 a指的是audio,codec指的是解码器,-acodec就是指定音频解码器
-aframes 设置要输出的音频帧数
-b:a 指定音频比特率 -b:a 128k 指定128kb/s码率;-b:a 192k平均比特率为192kbps
-ar 设定采样率 -ar 44k 指定音频的采样频率为44kHz
-ac 设定声音的Channel数
-an 去除音频流 即 -acodec none。合起来就是不指定音频解码器
-af 音频过滤器

1.4 FFmpeg其他参数

参数 说明 备注
-safe 0 防止Operation not permitted
-allowed_extensions ALL
-protocol_whitelist "file,http,crypto,tcp"
-strict experimental
-preset 指定编码速度和质量的平衡,可选项有ultrafast、superfast、veryfast、faster、fast、medium、slow、slower、veryslow
-sn 去除字幕流
-dn 去除数据流
-decoders 查询系统支持的编码格式 ffmpeg -decoders
-encoders 查询系统支持的解码格式 ffmpeg -encoders
ffmpeg -h encoder=mp3 查询编码器 mp3 格式的详细信息
ffmpeg -h decoder=h264_qsv 查询解码器 h264_qsv 格式的详细信息

二、多个文件时 -i 用法

2.1 多个视频文件写入到 txt 文本里

ffmpeg.exe -f concat -safe 0 -i file.txt -c copy out.mp4

2.2 多个视频文件用 | 分割

ffmpeg -i "concat:34020000001310000701_live-16.ts|34020000001310000701_live-17.ts|" -c copy output.mp4

三、ffmpeg处理合并AES-128加密的ts文件

1、下载好的m3u8文件,放到同一个文件夹里,它应该包括三个部分:

a、文件夹,里面有很多的ts文件。
b、一个m3u8文件
c、一个key文件,命名为"key.key"。完好的key文件是16字节。
接下来把m3u8文件和key文件复制到ts文件夹里。

2、m3u8如下图所示,需要将URI改为“key.key”,然后将分段视频ts命名改为与文件夹中视频命名一致
image

3、使用ffmpeg命令:将文件合并为output.mp4

ffmpeg -allowed_extensions ALL -protocol_whitelist "file,http,crypto,tcp" -i index.m3u8 -c copy output.mp4

四、




免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。




参考、来源:
http://www.manongjc.com/detail/23-xyrsjrgxjrqcmxi.html
https://www.bilibili.com/read/cv28266664/ 作者:人生是一场苦修 出处:bilibili
https://www.cnblogs.com/yiduobaozhiblog1/p/16252450.html
https://blog.csdn.net/fanyun_01/article/details/103299866
https://blog.csdn.net/huayizaisheng/article/details/118545623
https://blog.csdn.net/weixin_45736829/article/details/108427922
https://ffmpeg.org/ffmpeg-codecs.html
https://www.bookstack.cn/read/other-doc-cn-ffmpeg/ffmpeg-doc-cn-02.md
https://www.jianshu.com/p/0ae602d641b6
https://www.cnblogs.com/wwolf/p/ffmpeg-stream-selection-video-to-audio.html (-an 参数说明)
https://www.cnblogs.com/wwolf/p/15004964.html (多路音频流 -map使用)
https://blog.csdn.net/xindoo/article/details/121482547 (-ar -b:a 参数 )
http://www.manks.top/ffmpeg-install-static.html (静态库下载安装ffmpeg)
https://zhuanlan.zhihu.com/p/631378581 (-hwaccels 硬件加速)



posted @ 2024-03-16 08:50  悟透  阅读(2695)  评论(0)    收藏  举报