-an:去除音频流
-vn: 去除视频流
-preset:指定输出的视频质量,会影响文件的生成速度,有以下几个可用的值 ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow。
-y:不经过确认,输出时直接覆盖同名文件
ffmpeg -i test2.webm -vn -vcodec copy test2.m4a
ffmpeg -i test.mp4 -f mp3 -vn -c copy test.mp3
2.3利用opencv的VideoWriter生成视频流功能对视频的每帧进行处理(例如对视频流的每帧图片进行人脸检测)
VideoCapture capture=new VideoCapture()
capture.open(targetPath)
Size size = new Size(capture.get(Videoio.CAP_PROP_FRAME_WIDTH),
capture.get(Videoio.CAP_PROP_FRAME_HEIGHT))
VideoWriter vw=new VideoWriter(catalogue+fileName+"1"+type,
VideoWriter.fourcc('V', 'P', '0', '9'), //capture.get(Videoio.CAP_PROP_FPS),
size,
true)
if(!capture.isOpened()){
logger.info("读取视频文件失败!")
return null
Mat video=new Mat()
int i=0
long starTime=System.currentTimeMillis()
while (capture.isOpened() && capture.read(video)) {
logger.info("当前" + (i++))
//对每帧的图片进行处理
Mat current = ImageUtil.getVideoFace(video)
if(null==current) {
break
vw.write(current)
capture.release()
vw.release()
2.4最后对重新生成的视频和上面提取的音频进行合成
ffmpeg -i test2.wav -i test21.avi test22.webm
2.5得到了处理过的视频信息推送给对方用户