我正在尝试编写一个函数来运行一系列命令,但我不知道从哪里开始。
这是我想要运行的一系列命令。
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
请有人帮助我。
答案 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
}