视频黑场检测:
- ffmpeg -report -v quiet -i video.mp4 -vf blackdetect=d=0.5:pix_th=0.40:pic_th=0.85 -f null -
-report:将日志打印至文件
-v, -loglevel:日志级别,quiet:不输出console日志,还有info,debug等等;
-i:输入视频文件
blackdetect:黑场检测过滤器:检查视频中纯黑色画面的时间段。在检查视频中的过渡片段、广告或者非法数据等黑屏画面时很有效。输出数据包含黑屏片段的起始点,以及黑屏时长,单位为秒;
black_min_duration, d:
设置黑场时间阈值,只有黑场的连续时间大于门限值才认为是黑场视频。阈值大于等于0,默认2.0;
pixel_black_th, pix_th:
设置黑场像素点的判断阈值,默认值0.10。根据此阈值计算绝对阈值,低于绝对阈值的像素认为是黑场像素点。
*绝对阈值计算公式如下:
absolutethreshold = luminanceminimumvalue + pixelblackth luminancerangesize
luminancerangesize and luminanceminimumvalue 依赖输入视频的格式, 对于YUV full-range 其范围是 [0-255],对于YUV non full-range 其范围是 [16-235];*
picture_black_ratio_th, pic_th:
设置黑场的判断阈值,nb_black_pixels/nb_pixels(黑场像素/总像素),该值为百分比,大于等于此阈值认为此帧图片是黑场. 默认值0.98.
【官方参考】
blackdetect功能
-report报告输出文件名
FFREPORT=file=report_name.log:level=32 ffmpeg -report -v quiet -i video.mp4 -vf blackdetect=d=0.5:pix_th=0.40:pic_th=0.85 -f null -
需要在ffmpeg前面加上 FFREPORT=file=report_name.log:level=32 命令;
file参数是指定文件名,level为输出的日志级别。
【官方参考】
loglevel参考值
视频画面剪裁
ffmpeg -i video.mp4 -strict -2 -vf crop=960:1080:960:0 out.mp4
-i: 输入视频
-strict -2:严格模式
-vf: set video filters设置滤镜(过滤器?)
crop=width:height:start_width:start_height; width,height为剪裁后输出视频的宽高;start_width,start_height是视频剪裁左上角的起始位置; 剪裁范围根据两组参数相加而得;
写法:
#剪裁右侧1/2范围视频
ffmpeg -i video.mp4 -strict -2 -vf crop=iw/2:ih:iw/2:0 out.mp4
#从左侧1/5宽度处,剪裁宽度为3/5的视频,高度不变
ffmpeg -i video.mp4 -strict -2 -vf crop=iw/5*3:ih:iw/5:0 out.mp4
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。