【发布时间】:2014-05-11 01:26:14
【问题描述】:
我正在使用 FFMPEG 来测量存储在 Amazon S3 存储桶中的视频的持续时间。
我已阅读 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
但是,如果我去掉文件名中的空格 - 一切都很好,视频的持续时间就会返回。
【问题讨论】:
-
如果您引用,请保持原样:
ffmpeg -i "my video file.mov" -
您应该:1.) 用空格引用整个名称,或 2.) 用 `\` 转义空格 - 不能同时使用。
-
感谢您的帮助 - 似乎这仅适用于 URL,而不适用于直接文件名。 IE:针对“file name.mov”运行 cmd 有效。但是,对“domain.com/videos/filename.mov”运行它不会。
-
Aaaah 那么您必须检查 URL 的编码方式。通常一个空格被转换成
%20。只需用浏览器打开网址,查看地址栏中的内容即可。 -
@fedorqui 就是这样!如果您将评论转换为答案,我会这样标记。谢谢!