这段的目的是给ffmpeg拼接参数,然后跑ffmpeg输出音频文件。照着网上的案例抄的,结果报错。网上多方查询未果,求大佬指点!
cmd = 'ffmpeg'
cmd += ' -y'
cmd += ' -i "%s"' % os.path.join(target_dir, target_file)
cmd += ' -vn'
cmd += ' -ss %.2d:%.2d:%.2d' % (track['start'] / 60 / 60, track['start'] / 60 % 60, int(track['start'] % 60))
if 'duration' in track:
cmd += ' -t %.2d:%.2d:%.2d' % (track['duration'] / 60 / 60, track['duration'] / 60 % 60, int(track['duration'] % 60))
cmd += ' ' + ' '.join('-metadata %s="%s"' % (k, v) for (k, v) in metadata.items())
#cmd += ' "%.2d - %s - %s.mp3"' % (track['track'], track['artist'], track['title'])
cmd += ' -acodec ac3'
cmd += ' "%s.ac3"' % (track['title'])
#以上是拼接参数
import shlex, subprocess
print(cmd)
#此处print出来的字符串正常
#下一行报错AttributeError: 'bytes' object has no attribute 'read',全部报错信息附后
args = shlex.split(cmd.encode("utf-8"))
p = subprocess.Popen(args)
p.wait()
全部报错信息:
Traceback (most recent call last):
File "C:\Users\fjiang\Desktop\split-cuesheet2ac3.py", line 93, in <module>
args = shlex.split(cmd.encode("utf-8"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\fjiang\AppData\Local\Programs\Python\Python311\Lib\shlex.py", line 315, in split
return list(lex)
^^^^^^^^^
File "C:\Users\fjiang\AppData\Local\Programs\Python\Python311\Lib\shlex.py", line 300, in __next__
token = self.get_token()
^^^^^^^^^^^^^^^^
File "C:\Users\fjiang\AppData\Local\Programs\Python\Python311\Lib\shlex.py", line 109, in get_token
raw = self.read_token()
^^^^^^^^^^^^^^^^^
File "C:\Users\fjiang\AppData\Local\Programs\Python\Python311\Lib\shlex.py", line 140, in read_token
nextchar = self.instream.read(1)
^^^^^^^^^^^^^^^^^^
AttributeError: 'bytes' object has no attribute 'read'
--
修改:Osram FROM 111.8.143.*
FROM 111.8.143.*