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:处理输入时发现无效数据

可能是什么问题?使用Linux Mint 18,基于Ubuntu 16.04。

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

相关内容