1

ffmpeg + libx264 を使用して Python で動画を変換しています。

以下のコードを使用すると、出力の幅と高さが一致しないことに気付きました。すべての入力ファイルは 1080p ですが、出力ファイルは 1080p の場合もあれば、2 倍のサイズまたはその中間の場合もあります。

これは、ビデオを生成するために使用している 2 パス コードです。

  #Generate 1080p Movie
  if not os.path.exists(destination_filename_1080):
    pass_num = 1
    while pass_num <= 2:
      p = subprocess.Popen(['ffmpeg','-i', str(filename),
                            '-acodec' , 'aac' ,
                            '-ab' , '192k' ,
                            '-ac' , '2' ,
                            '-vcodec' , 'libx264' ,
                            '-strict' , '-2' ,
                            '-vpre' , 'ipod640' ,
                            '-threads' , '8' ,
                            '-s' , '1920x1080' ,
                            '-b:v' , '10M' ,
                            '-pass' , str(pass_num) ,
                            '-passlogfile' , random_1080 ,
                            '-y' ,
                            destination_filename_1080_temp])
      p.wait()
      pass_num = pass_num + 1

「-s 1920x1080」フラグが出力を強制的に 1080p にする必要があることは、私の理解です。入力が 1080p しかない場合に、出力サイズが 1080p を超える方法がわかりません。

前もって感謝します。

4

1 に答える 1

0

2 つのこと: 1. プリセット ファイルのチェック: プリセットのサイズがまだ指定されていないことを確認する必要があります。2. パラメータの順序。それらはffmpegで重要です。あなたがそれらを与えて見る場所を変えてください。

編集: 問題が発生しているケースの完全なコンソール出力がない限り、何が問題になっているのかを判断するのは困難です。

于 2012-09-01T18:02:58.457 に答える