赞
踩
使用的ffmpeg的较新版本,可以通过使用ffprobe和FFMPEG段复用器实现这一点。
1.使用ffprobe和awk识别关键帧尽可能地接近你想要的块长度。
ffprobe -show_frames -select_streams v:0 -print_format csv **[SOURCE_VIDEO]** 2>&1 | grep -n frame,video,1 | awk 'BEGIN { FS="," } { print $1 " " $5 }' | sed 's/:frame//g' | awk 'BEGIN { previous=0; frameIdx=0; size=0; } { split($2,time,"."); current=time[1]; if (current-previous >= **[DURATION_IN_SECONDS]**){ a[frameIdx]=$1; frameIdx++; size++; previous=current;} } END { str=a[0]; for(i=1;i
凡
[SOURCE_VIDEO] =路径视频要段
[DURATION_IN_SECONDS] =以秒为期望的段长度
的输出是逗号分隔的关键帧字符串。
2.使用关键帧输出上述作为输入的ffmpeg。
的ffmpeg -i [SOURCE_VIDEO] -codec拷贝-map 0 -f段-segment_frames [OUTPUT_OF_STEP_1] [SEGMENT_PREFIX] _%03D。 [SOURCE_VIDEO_EXTENSION]
凡
[SOURCE_VIDEO] =路径视频要细分
[OUTPUT_OF_STEP_1]关键帧的 =逗号分隔字符串
[SEGMENT_PREFIX段输出的] =名
[SOURCE_VIDEO_EXTENSION] =扩展视频源(例如,MP4,MKV)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。