python线上的 ffmpeg 总是报这个错

FileNotFoundError: [Errno 2] No such file or directory: 'ffmpeg -i /root/data/www/python-flask/src/video/真实的程序员敲代码.mp4 -i /root/data/www/python-flask/src/video/真实的程序员敲代码.mp3 -c:v copy -c:a aac -strict experimental /root/data/www/python-flask/src/video/真实的程序员敲代码output.mp4 -y'
[pid: 26477|app: 0|req: 3/3] 27.189.227.123 () {46 vars in 802 bytes} [Mon Jul 17 12:16:00 2023] POST /get/video => generated 265 bytes in 957 msecs (HTTP/1.1 500) 4 headers in 165 bytes (1 switches on core 0)

python线上的 ffmpeg 总是报这个错

根据你提供的错误信息,这是一个FileNotFoundError的错误,指示找不到文件或目录。具体来说,它无法找到名为ffmpeg -i /root/data/www/python-flask/src/video/真实的程序员敲代码.mp4的文件。

根据错误信息,它似乎将整个ffmpeg命令作为一个文件名,这是错误的。ffmpeg命令应该是一个可执行文件,并且输入和输出文件应该作为参数传递给该命令。

请确保以下几点:

  1. 确保已正确安装ffmpeg并且可在系统中访问。你可以通过在终端中运行ffmpeg -version命令来检查是否安装正确。

  2. 确保输入和输出文件的路径是正确的,并且在运行命令之前已经存在。你可以使用绝对路径或相对路径来指定文件。

  3. 将ffmpeg命令和输入输出文件作为参数传递给subprocess或其他调用外部命令的Python函数。确保正确地处理命令和参数之间的空格和引号。

以下是一个示例代码片段,展示如何使用subprocess模块调用ffmpeg命令来合并视频和音频文件:

import subprocess

video_input = '/root/data/www/python-flask/src/video/真实的程序员敲代码.mp4'
audio_input = '/root/data/www/python-flask/src/video/真实的程序员敲代码.mp3'
output_file = '/root/data/www/python-flask/src/video/真实的程序员敲代码output.mp4'

command = f'ffmpeg -i "{video_input}" -i "{audio_input}" -c:v copy -c:a aac -strict experimental "{output_file}" -y'
subprocess.run(command, shell=True)

请确保在使用此代码之前,仔细检查和确认输入和输出文件的路径是否正确,并且确保ffmpeg命令可在系统中正确运行。

同时,请注意,这只是一个示例,并没有考虑到输入和输出文件路径中可能存在的特殊字符或空格等情况。在实际使用时,你需要根据自己的需求进行适当的错误处理和文件路径处理。

希望能帮助到你!如果问题仍然存在,请提供更多的代码和完整的错误信息,以便我可以更准确地帮助你解决问题。

是不是文件本身就不存在的:FileNotFoundError: [Errno 2] No such file or directory,好好检查一下访问权限和文件路径,同时注意可能是ffmpeg本身无法找到,或者权限问题