我正在使用FFMPEG将.asf流保存到我的Ubuntu机器上的mp4,输出文件名是时间戳。这是代码:
current_time=$(date "+%m/%d/%Y_%H:%M:%S")
ffmpeg -i http://username:password@IP:Port/videostream.asf -r 10 -vcodec copy -an -t 60 $current_time.mp4
但是,我收到“.mp4没有这样的文件或目录”错误。
答案 0 :(得分:2)
bash
不允许您创建/
存在的文件名根据POSIX“[t],可以从所有字符值的集合中选择组成[文件]名称的字符,不包括斜杠字符和空字节”。换句话说,两个斜杠之间的每个字符串([空字符串除外])是另一个目录,并且不能创建一个名称包含斜杠的文件。
不使用斜杠创建
ffmpeg -i http://username:password@IP:Port/videostream.asf -r 10 -vcodec copy -an -t 60 "${current_time//\//_}".mp4
(或)将时间字符串更改为在时间映射中没有'/',
current_time="$(date "+%m_%d_%Y_%H:%M:%S")"
ffmpeg -i http://username:password@IP:Port/videostream.asf -r 10 -vcodec copy -an -t 60 "${current_time}".mp4