batch_video_cover.sh 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #!/bin/bash
  2. paths=$(cat paths.txt)
  3. picName=''
  4. videoInput=''
  5. ossUrl='oss://oss-xiaoan' # 更改上传的oss bucket路径
  6. takeVideoCap() {
  7. ffmpeg -hide_banner -loglevel error -y -i $videoInput -r 1 -ss 00:00:01 -vframes 1 -vf "transpose=1,scale=iw/4:ih/4,setsar=1:1" -f image2 "$filePath/${picName}.jpg"
  8. }
  9. command_exists() {
  10. if ! [[ -x $(command -v "$1") ]]; then
  11. return 1
  12. fi
  13. return 0
  14. }
  15. # fileurl=$1
  16. # directory=$2
  17. # /opt/ossutil/ossutil64 cp oss://4dkankan/$fileurl \-rf $directory
  18. for path in $paths; do
  19. # pathParam=($path)
  20. IFS=", " read -a pathParam <<<$path
  21. filePath=${pathParam[0]}
  22. code=${pathParam[1]}
  23. if [ -d $filePath ] && command_exists "ffmpeg"; then
  24. videoList=("$filePath/*.mp4")
  25. if [ ${#videoList[@]} -gt 0 ]; then
  26. for video in $videoList; do
  27. echo "存在视频: ${video}"
  28. filename=$(basename -- "$video")
  29. filename="${filename%.*}"
  30. export picName=$filename
  31. export videoInput=$video
  32. echo -e "\033[43;34m cap sucess : $filePath/${picName}.jpg \033[0m"
  33. takeVideoCap
  34. echo -e "upload: video/video${code}"
  35. /opt/ossutil/ossutil64 cp -rf $filePath/${picName}.jpg ${ossUrl}/video/video${code}/
  36. # https://4dkk2.4dage.com/video/videot-tXj1F7V/8.mp4?imagesVersion=5
  37. done
  38. fi
  39. else
  40. echo -e "\033[0;33m 文件夹不存在: ${filePath} \033[m"
  41. fi
  42. done