这段脚本目前只能转码当前文件夹下的mp4文件,求修改成当前文件夹下的递归目录后缀为mp4也让ffmpeg转码。

sh/bash/dash/ksh/zsh等Shell脚本
回复
psllll
帖子: 2
注册时间: 2017-09-13 20:20
系统: debian
送出感谢: 0
接收感谢: 0

这段脚本目前只能转码当前文件夹下的mp4文件,求修改成当前文件夹下的递归目录后缀为mp4也让ffmpeg转码。

#1

帖子 psllll » 2022-11-12 2:33

for i in *.mp4;
  do name=`echo "$i" | cut -d'.' -f1`
  echo "$name"
  ffmpeg -y -hide_banner -i "$i" -c:v libx264 "${name}.mp4"
done

这段脚本目前只能转码当前文件夹下的mp4文件,求修改成当前文件夹下的递归目录后缀为mp4也让ffmpeg转码。
相当于windows的for /r %%a in (*.flv) do
头像
astolia
论坛版主
帖子: 5972
注册时间: 2008-09-18 13:11
送出感谢: 1 次
接收感谢: 1039 次

Re: 这段脚本目前只能转码当前文件夹下的mp4文件,求修改成当前文件夹下的递归目录后缀为mp4也让ffmpeg转码。

#2

帖子 astolia » 2022-11-12 11:25

你代码写错了吧,怎么是把*.mp4文件转成同名的.mp4文件?从windows下的来看应该是*.flv转mp4?

代码: 全选

find -name "*.flv" -exec sh -c 'ffmpeg -y -hide_banner -i "{}" -c:v libx264 $(echo "{}" | sed "s/flv$/mp4/")' \;
头像
lilydjwg
论坛版主
帖子: 4238
注册时间: 2009-04-11 23:46
系统: Arch Linux
送出感谢: 12 次
接收感谢: 134 次
联系:

Re: 这段脚本目前只能转码当前文件夹下的mp4文件,求修改成当前文件夹下的递归目录后缀为mp4也让ffmpeg转码。

#3

帖子 lilydjwg » 2022-11-12 11:48

用 zsh 的话可以 **/*.flv。bash 好像设置个选项也有 **。
回复