在小鸡当前目录有2000个视频,全是mp4,有的是手机录制的

有的是大片适合电脑播放的

我需要用ffmpeg把不适合手机播放的,全部删除,只剩下手机长宽比的

如何写命令啊?
广东网友:前端不可以处理吗 感兴趣 帮顶
山东网友:
全部视频,放一个文件夹下
用ffprobe (ffmpeg的小工具)

  1. 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 的目录,疑似宽屏的视频会被移动到这里

  1. #!/bin/bash
  2. PATH=$PATH:/usr/local/bin/
  3. count=0
  4. for file in *.mp4 ; do
  5.     width_prefix=’streams_stream_0_width=’
  6.     height_prefix=’streams_stream_0_height=’
  7.     declare -a dimensions
  8.     while read -r line
  9.         do
  10.             dimensions+=( "${line}" )
  11.         done < <( ffprobe -v error -of flat=s=_ -select_streams v:0 -show_entries stream=width,height "${file}" )
  12.     width_with_prefix=${dimensions[0]}
  13.     height_with_prefix=${dimensions[1]}
  14.     width=${width_with_prefix#${width_prefix}}
  15.     height=${height_with_prefix#${height_prefix}}
  16.    
  17.     if ((${width}<${height})) ; then
  18.         printf "%s\t%sx%s\n" "${file} [ 可能是手机视频 ]" "${width}" "${height}"
  19.     else
  20.         printf "%s\t%sx%s\n" "${file} [pass]" "${width}" "${height}"
  21.         count=$((count+1))
  22.         mv ${file} ./pass/
  23.     fi
  24.     unset dimensions
  25. done
  26. echo "移除了${count}个宽屏视频"

复制代码

江西网友:太感谢了,很好用,已经搞成功了
山东网友:
上海网友:网站发出来,帮你增加点流量!~

01-22 05:06