官方文档:ffmpeg Documentation
查看支持的编解码器:(-vcodec 后面可以跟的参数,例如 hevc):
ffmpeg -codecs
查看支持的封装格式:(-f 后面可以跟的参数,例如 mp4):
ffmpeg -formats
查看支持的 pixel 格式:(-pix_fmt 后面可以跟的参数,例如 yuv420p):
ffmpeg -pix_fmts
1. 提取 mp4 文件中的 H264 / H265 码流:
ffmpeg -i test.mp4 -vcodec copy -f h264 output.h264
ffmpeg -i test.mp4 -vcodec copy -f hevc output.h265
2. 将 H264 码流封装为 mp4:
ffmpeg -i input.h264 -vcodec copy -f mp4 output.mp4
3. 删除 mp4 文件中的音频:
ffmpeg -i test.mp4 -vcodec copy -an output.mp4
4. 将 mp4 / H264 文件解码为 yuv 文件
"-frames:v" 指定解码帧数;这个参数需要在输出文件名称之前,否则不生效
也可以通过 -pix_fmt 参数指定输出 yuv 文件的格式,如 "-pix_fmt yuv420p"
ffmpeg -i test.mp4 -vcodec rawvideo -an -frames:v 10 width_height.yuv
5. yuv 和 rgb 各种格式互相转换:
需要指定 size 和 格式
ffmpeg -s 1920x1080 -pix_fmt yuv420p -i input.yuv -pix_fmt rgba output.yuv
将 10bit 转为 8bit 时,如果直接砍掉低 2bits 的话,会有 banding。
ffmpeg 默认会 enable dither 算法,可以消除 banding,参考:FFmpeg Scaler Documentation

可以通过参数 "-sws_dither none" 来关闭 dither。
6. 调整视频尺寸:
ffmpeg -i test.mp4 -s 720x480 -c:a copy output.mp4
7. 剪切视频:-ss 为起始时间,-t 表示要切多少,下面的命令从 15 秒开始,切 5 秒出来:
ffmpeg -i test.mp4 -ss 00:00:15 -t 00:00:05 -vcodec copy -acodec copy output.mp4
1169

被折叠的 条评论
为什么被折叠?



