私のディレクトリに接続したいビデオのリストがあります。
Video1.mpg
Video2.mpg
.
.
.
Video35.mpg
catコマンドに手動で書き込む必要なく、番号付きの順序で接続したいと思います。
ベストアンサー1
そしてzsh
ffmpeg
:
files=(Video*.mpg(n))
ffmpeg -f concat -safe 0 -i <(printf 'file %s\n' ${(qq)files}) -c copy output.mpg
(n)
zsh
はグローバル予選数値順に並べ替えます。(qq)
一重引用符で囲まれた変数拡張フラグ。ffmpeg
ファイル名に一重引用符、バックスラッシュ、または改行文字が含まれていると、期待どおりに正確に引用されることを保証できません。
私が理解したところ、上記はすべてのmpgファイルが同じコーデックを使用していると仮定しています。
AFAICT、mpeg
特にファイルの場合は、ファイルをファイルレベルでリンクしたり、ほとんどのプレーヤーで再生を続けることができるので、次のこともできます(まだ機能しますzsh
)。
cat Video*.mpg(n) > output.mpg
macOSにデフォルトでインストールされているがデフォルトのログインzsh
シェルを明示的に変更しない限り、端末から取得できるデフォルトのシェルではありませんbash
。したがって、まず端末のシェルプロンプトに入力するか、zsh
次のコマンドを実行する必要があります。zsh
bash
zsh -c 'cat Video*.mpg(n) > output.mpg'
代わりに。