我使用这么小的脚本将我的SAT接收器中的视频转换为h264 / mp3格式。
[maciek@piotr Pobrane]$ cat ./conv_sat_to_clean_ts
#!/bin/bash
ffmpeg -i $1.ts -movflags +faststart -vcodec h264 -acodec mp3 -f mpegts $1-new.ts
问题在于,当我以这种方式调用该脚本时:
./conv_sat_to_clean_ts ./Operacja\ Dunaj.ts
它显示了一个错误:
./Operacja: No such file or directory
这意味着忽略调用参数中包含的空格,并且不能正确解释文件名。 有办法解决这个问题吗?
答案 0 :(得分:0)
将$1
用双引号括起,因为filename有空格。
ffmpeg -i "$1".ts -movflags +faststart -vcodec h264 -acodec mp3 -f mpegts "$1"-new.ts
并运行没有.ts
./conv_sat_to_clean_ts ./Operacja\ Dunaj
或
./conv_sat_to_clean_ts "Operacja Dunaj"
答案 1 :(得分:0)
是。 RBH是对的。现在我的脚本看起来像这样并正常工作。
#!/bin/bash
ffmpeg -i "$1" -movflags +faststart -vcodec h264 -acodec mp3 -f mpegts NEW-"$1"
文件名中的空格(作为脚本调用参数)被正确解释