私は多くの時間のためにしようとしてきた、少し問題を抱えているが、このようパイソン3にFFMPEGで動画を変換:どのように変換ビデオのためのWindows上でPython 3のサブプロセスを実行しますか?
モデル、
class Video(models.Model):
name = models.CharField(max_length=200, null=False)
state = models.CharField(max_length=30, null=False)
user_email = models.CharField(max_length=30, null=False)
uploadDate = models.DateTimeField(null=False)
message = models.CharField(max_length=200, null=False)
original_video = models.FileField(upload_to='video', null=True)
converted = models.BooleanField(default=False)
、変換のコード。
video = Video.objects.filter(id=param_id).get()
pathConverted = 'C:\\Users\\diego\\Documents\\GitHub\\convertido.mp4'
cmd = ['ffmpeg', '-i ', video.original_video.path, ' -b 1500k -vcodec ibx264 -g 30', pathConverted]
print('Ejecutando... ', ' '.join(cmd))
try:
proc = subprocess.run(cmd, shell=True, check=True)
proc.subprocess.wait()
except subprocess.CalledProcessError as e:
raise RuntimeError("command '{}' return with error (code {}): {}".format(e.cmd, e.returncode, e.output))
これはエラーです。
raise RuntimeError("command '{}' return with error (code {}): {}".format(e.cmd, e.returncode, e.output)) RuntimeError: command '['ffmpeg', '-i ', 'C:\\Users\\diego\\Documents\\GitHub\\video1.avi', ' -b 1500k -vcodec libx264 -g 30', 'C:\\Users\\diego\\Documents\\GitHub\\convertido.mp4']' return with error (code 1): None
そしてまた、私はこの試してみました:エラーがある。この場合
video = Video.objects.filter(id=1).get()
pathConverted = 'C:\\Users\\diego\\Documents\\GitHub\\convertido.mp4'
cmd = ['ffmpeg', '-i ', video.original_video.path, ' -b 1500k -vcodec libx264 -g 30', pathConverted]
print('Ejecutando... ', ' '.join(cmd))
proc = subprocess.Popen(cmd,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
proc.subprocess.wait()
を:
FileNotFoundError: [WinError 2] No such file or directory
しかし、私はパスをコピーして試してみるために窓にCMDでこれを貼り付けるときこれはビデオを変換しました。それはうまく動作します。
次に、私は混乱しています、私はエラーが何か分かりません。
誰かが私を助けることができますか?
あなたはffmpegのために完全なパスを定義しようとしたことがありますか? –
セルゲイ、私はWindowsでパス環境変数を設定します。 "ffmpeg"をダウンロードしてC:\ ffmpeg \に入れてください。パスに私のEVはC:\ ffmpeg \ bin \ Evenを入れます。これは正常に動作ffmpegを試してください。しかし、エラーは持続する –
あなたは試すことができます。それがうまくいくならば、少なくともエラーの明確な原因になり、ソリューションの検索を続行しやすくなります。 –