ffmpegが入力を処理したときに誤ったデータが見つかりました。

ffmpegが入力を処理したときに誤ったデータが見つかりました。

次のスクリプトがあります。

#!/bin/bash

# $1 -- extension, like *.MP4
# $2 -- output file name

ffmpeg -f concat -i <(find . -name '$1' -printf "file '$PWD/%p'\n" | sort) -c copy $2

MP4ファイルを関連付けようとすると、次のエラーが発生します。

/dev/fd/63: 入力の処理中に無効なデータが見つかりました。

何が問題なのでしょうか? Ubuntu 16.04ベースのLinux Mint 18を使用してください。

PS:問題は、$ 1が引用符( '$ 1')に置き換えられていないことです。これでハードコードされています。交換するには?

ベストアンサー1

-nameこれはうまくいきます - フラグはこれを許可するので、拡張子を引用符の外に移動します。

#!/bin/bash

# $1 -- extension, like MP4
# $2 -- output file name

echo Extension: $1
echo Output: $2

echo Files:
find . -name \*.$1 -printf "file '$PWD/%p'\n" | sort

ffmpeg -f concat -i <(find . -name \*.$1 -printf "file '$PWD/%p'\n" | sort) -c copy $2

おすすめ記事