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을 사용합니다.

추신: 문제는 $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

관련 정보