Components
组件描述
- libavutil:描述时间、视频大小、帧率、码率、颜色、渠道语法格式
- 包括字符串处理函数、随机数生成器、数学函数、加密函数
- libswscale:图形变换,图片rescaling和像素格式变换
- 视频rescaling:改变视频大小
- 改变图片格式和颜色空间
- libswresample:音频重采样
- 音频48KHz降采到8KHz
- 多声道到单声道
- libavcodec:编解码
- Bitstream Filters:执行bitstream级别的修改,但不执行解码
- libavformat:混流与分流.支持多种不同协议的读取,例如rtmp,hls
- 解封和封装一些音视频容器格式
- libavdevice:类似mux和demux,从不同的输入设备demux,然后到输出设备mux
- libavfilter:
命令行
语法:
https://ffmpeg.org/ffmpeg.html#Stream-specifiers-1
1 | ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ... |
所有在命令行中无法解释为option的都当输出考虑
-map选项制定输入和输出的对应关系
选项中制定输入文件可以用从0开始的index制定,stream也是从0开始指定
copy选项说明不需要进行decode和encode,适用于改变容器类型
stream specifiers:
- -codec:a:1 ac3 第二个输入文件的audio使用ac3 codec
- stream_index 流索引
- stream_type[:additional_stream_specifier] v:video,a:audio,s:subtitle,d:data,t:attachments
- p:program_id[:additional_stream_specifier]
- #stream_id or i:stream_id PID in MPEG-TS container
- m:key[:value] 匹配metadata tag中有特定key和值的流
- u
通用命令
1
2ffmpge -codecs 列出可用codec
ffmpeg -muxers 列出可用muxers