2016-08-31 6 views
2

私は多くの時間のためにしようとしてきた、少し問題を抱えているが、このようパイソン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でこれを貼り付けるときこれはビデオを変換しました。それはうまく動作します。

次に、私は混乱しています、私はエラーが何か分かりません。

誰かが私を助けることができますか?

+0

あなたはffmpegのために完全なパスを定義しようとしたことがありますか? –

+0

セルゲイ、私はWindowsでパス環境変数を設定します。 "ffmpeg"をダウンロードしてC:\ ffmpeg \に入れてください。パスに私のEVはC:\ ffmpeg \ bin \ Evenを入れます。これは正常に動作ffmpegを試してください。しかし、エラーは持続する –

+0

あなたは試すことができます。それがうまくいくならば、少なくともエラーの明確な原因になり、ソリューションの検索を続行しやすくなります。 –

答えて

1

ファイルが見つからないのはファイル "ffmpeg"です。 パスと拡張子を持つファイルを入力してみます。C:\ Program Files \ ffmpegののの\ ffmpeg.exe

ベストリガード エマニュエル

+0

親愛なるエマニュエル、私はWindowsのパス環境変数を設定します。 "ffmpeg"をダウンロードしてC:\ ffmpeg \に入れてください。パスに私のEVはC:\ ffmpeg \ bin \ Evenを入れます。これは正常に動作ffmpegを試してください。 :( –

関連する問題