gpt4 book ai didi

bash - ffmpeg bash脚本文件名变量中的空格

转载 作者:行者123 更新时间:2023-12-04 22:56:08 28 4
gpt4 key购买 nike

我正在使用 OS X Yosemite。我想制作一个简单的 bash 脚本,允许我对视频进行转码。只要文件不在有空格的目录中,一切都会正常工作。

这是我的脚本:

#!/bin/sh

ffmpeg -i “$1” -c:v ffv1 -level 3 -g 1 -c:a copy “$1.mkv”

最初,我没有在变量周围加上双引号,但我读到了一些堆栈溢出,将其用作解决方案。我宁愿不必更改路径或添加斜杠等。我只想运行:
 ./script.sh filename.mov 

这是我得到的错误:
Kierans-iMac:~ bla$ ./firstscript.command "/Users/bla/Desktop/untitled\ folder\ 2/v210.mov.mkv" 
ffmpeg version 2.7.2 Copyright (c) 2000-2015 the FFmpeg developers
built with Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)
configuration: --prefix=/usr/local/Cellar/ffmpeg/2.7.2_1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libvo-aacenc --enable-libxvid --enable-libfreetype --enable-libfaac --enable-libass --enable-ffplay --enable-libopenjpeg --disable-decoder=jpeg2000 --extra-cflags='-I/usr/local/Cellar/openjpeg/1.5.2_1/include/openjpeg-1.5 ' --enable-nonfree --enable-vda
libavutil 54. 27.100 / 54. 27.100
libavcodec 56. 41.100 / 56. 41.100
libavformat 56. 36.100 / 56. 36.100
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 16.101 / 5. 16.101
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.100 / 1. 2.100
libpostproc 53. 3.100 / 53. 3.100
“/Users/bla/Desktop/untitled\: No such file or directory

最佳答案

您引用了两次空格:

./firstscript.command "/Users/bla/Desktop/untitled\ folder\ 2/v210.mov.mkv"

应该只是
./firstscript.command "/Users/bla/Desktop/untitled folder 2/v210.mov.mkv"

带引号的字符串 "foo"相当于 \f\o\o ;每个字符都被转义。原件中的反斜杠被视为文字反斜杠。

在脚本内部,您仍然需要引用参数扩展:
ffmpeg -i "$1" -c:v ffv1 -level 3 -g 1 -c:a copy "$1.mkv"

请注意,您必须使用常规 ASCII 引号 ( " ),而不是链接中错误消息所暗示的“智能”引号 ( )。

关于bash - ffmpeg bash脚本文件名变量中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32102496/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com