编写一个函数来运行一系列命令,zsh

时间:2016-09-08 16:58:24

标签: function ffmpeg find touch zsh

我正在尝试编写一个函数来运行一系列命令,但我不知道从哪里开始。

这是我想要运行的一系列命令。

find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -vcodec libx264 -vf scale=854:480 -cpu-used 5 -threads 8 "${0%%.mp4}-copy.mp4"' {} \;
touch -r video.mp4 video-copy.mp4
rm -rf video.mp4
mv video-copy.mp4 video.mp4
find ./ -name '*.mp4' -exec bash -c 'qt-faststart "$0" "${0%%.mp4}-fs.mp4"' {} \;
touch -r video.mp4 video-fs.mp4
rm -rf video.mp4
mv video-fs.mp4 video.mp4
find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -vcodec libvpx -acodec libvorbis -vf scale=-1:480 -cpu-used 5 -threads 8 "${0%%.mp4}.webm"' {} \;
touch -r video.mp4 video.webm
find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -ss 00:00:10 -vframes 1 -r 1 -vf scale=-1:480 -f image2 "${0%%.mp4}.jpg"' {} \;
touch -r video.mp4 video.jpg
mv video.jpg thumbnail.jpg

请有人帮助我。

1 个答案:

答案 0 :(得分:0)

只需将您的命令包装在<funcname> () { ... }

foo () {
    find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -vcodec libx264 -vf scale=854:480 -cpu-used 5 -threads 8 "${0%%.mp4}-copy.mp4"' {} \;
    touch -r video.mp4 video-copy.mp4
    rm -rf video.mp4
    mv video-copy.mp4 video.mp4
    find ./ -name '*.mp4' -exec bash -c 'qt-faststart "$0" "${0%%.mp4}-fs.mp4"' {} \;
    touch -r video.mp4 video-fs.mp4
    rm -rf video.mp4
    mv video-fs.mp4 video.mp4
    find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -vcodec libvpx -acodec libvorbis -vf scale=-1:480 -cpu-used 5 -threads 8 "${0%%.mp4}.webm"' {} \;
    touch -r video.mp4 video.webm
    find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -ss 00:00:10 -vframes 1 -r 1 -vf scale=-1:480 -f image2 "${0%%.mp4}.jpg"' {} \;
    touch -r video.mp4 video.jpg
    mv video.jpg thumbnail.jpg
}