ffmpeg不使用具有空格的文件名

cmw*_*cmw 11 bash ffmpeg

我正在使用FFMPEG来衡量存储在Amazon S3 Bucket中的视频的持续时间.

我已经阅读了FFMPEG文档,他们明确声明需要转义所有空格和特殊字符,以便FFMPEG正确处理它们:

请参阅文档2.1和2.1.1:https://ffmpeg.org/ffmpeg-utils.html

但是,在处理文件名包含空格的文件时,ffmpeg无法呈现结果.

我尝试了以下,没有成功

ffmpeg -i "http://s3.mybucketname.com/videos/my\ video\ file.mov" 2>&1 | grep Duration | awk '{print $2}' | tr -d
ffmpeg -i "http://s3.mybucketname.com/videos/my video file.mov" 2>&1 | grep Duration | awk '{print $2}' | tr -d
ffmpeg -i "http://s3.mybucketname.com/videos/my'\' video'\' file.mov" 2>&1 | grep Duration | awk '{print $2}' | tr -d
ffmpeg -i "http://s3.mybucketname.com/videos/my\ video\ file.mov" 2>&1 | grep Duration | awk '{print $2}' | tr -d
Run Code Online (Sandbox Code Playgroud)

但是,如果我删除文件名中的空格 - 一切都很好,并返回视频的持续时间.

任何帮助表示赞赏!

fed*_*qui 19

如果您的文件名中恰好有空格,请引用它们:

ffmpeg -i "my video file.mov"
Run Code Online (Sandbox Code Playgroud)

在URL中,空格不能存在.很可能你必须用a替换每个空格%20,这样你才能得到:

ffmpeg -i http://myurl.com/my%20video%20file.mov
                             ^^^     ^^^
Run Code Online (Sandbox Code Playgroud)