単一入力を複数回Bashする

単一入力を複数回Bashする

次のようなスクリプトがあります:

ffmpeg -i input.mp4 -stabilization-pass-1-stuff && \
ffmpeg -i input.mp4 -b:v xxxxk -stabilization-pass-2-h264-pass-1-stuff && \
ffmpeg -i input.mp4 -b:v xxxxk -h264-pass-2-output-stuff output.mp4

スクリプトの始めに input.mp4 とビットレート xxxxk を一度提供するようにスクリプトを書き直すにはどうすればよいですか?

答え1

シェル変数を使用します。「同じことを繰り返さない」ことは、シェル変数の主な使用例の 1 つです。

#!/bin/sh

file='input.mp4'
bitrate='xxxxk'

ffmpeg -i "$file" -stabilization-pass-1-stuff &&
ffmpeg -i "$file" -b:v "$bitrate" -stabilization-pass-2-h264-pass-1-stuff &&
ffmpeg -i "$file" -b:v "$bitrate" -h264-pass-2-output-stuff output.mp4

ノート:

関連情報