在小鸡当前目录有2000个视频,全是mp4,有的是手机录制的
有的是大片适合电脑播放的
我需要用ffmpeg把不适合手机播放的,全部删除,只剩下手机长宽比的
如何写命令啊?
广东网友:前端不可以处理吗 感兴趣 帮顶
山东网友:
全部视频,放一个文件夹下
用ffprobe (ffmpeg的小工具)
- for %i in (*.*) do ffprobe.exe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 %i >> list.txt
复制代码
按顺序查看分辨率,全都在list.txt里边.
我是windows平台,CMD运行.
代码一半以上是抄的,别问太多问题,我平时就在网上看看电影电视的水平.
江苏网友:最简单的方法其实就是判断宽屏和竖屏,除了一些视频本身就有旋转的大部分都比较精确,使用ffprobe来获得宽和高,我这里就做了简单的大小比较,整理两千个视频应该足够了
在视频目录新建一个名为 pass 的目录,疑似宽屏的视频会被移动到这里
- #!/bin/bash
- PATH=$PATH:/usr/local/bin/
- count=0
- for file in *.mp4 ; do
- width_prefix=’streams_stream_0_width=’
- height_prefix=’streams_stream_0_height=’
- declare -a dimensions
- while read -r line
- do
- dimensions+=( "${line}" )
- done < <( ffprobe -v error -of flat=s=_ -select_streams v:0 -show_entries stream=width,height "${file}" )
- width_with_prefix=${dimensions[0]}
- height_with_prefix=${dimensions[1]}
- width=${width_with_prefix#${width_prefix}}
- height=${height_with_prefix#${height_prefix}}
- if ((${width}<${height})) ; then
- printf "%s\t%sx%s\n" "${file} [ 可能是手机视频 ]" "${width}" "${height}"
- else
- printf "%s\t%sx%s\n" "${file} [pass]" "${width}" "${height}"
- count=$((count+1))
- mv ${file} ./pass/
- fi
- unset dimensions
- done
- echo "移除了${count}个宽屏视频"
复制代码
江西网友:太感谢了,很好用,已经搞成功了
山东网友:
上海网友:网站发出来,帮你增加点流量!~
01-22 05:06