2

さまざまな形式 (主に avi) の多数のビデオ ファイルがあります。たとえば、 からの関連する行ffprobe:

  Duration: 02:27:14.70, start: 0.000000, bitrate: 664 kb/s
    Stream #0.0: Video: mpeg4, yuv420p, 608x256 [PAR 1:1 DAR 19:8], 23.98 tbr, 23.98 tbn, 23.98 tbc
    Stream #0.1: Audio: mp3, 44100 Hz, stereo, s16, 96 kb/s

  Duration: 00:20:51.84, start: 0.000000, bitrate: 3286 kb/s
    Stream #0.0: Video: mpeg4, yuv420p, 640x480 [PAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
    Stream #0.1: Audio: mp3, 48000 Hz, stereo, s16, 128 kb/s

  Duration: 01:26:01.84, start: 0.000000, bitrate: 845 kb/s
    Stream #0.0: Video: mpeg4, yuv420p, 704x544 [PAR 1:1 DAR 22:17], 25 fps, 25 tbr, 25 tbn, 30k tbc
    Stream #0.1: Audio: mp3, 44100 Hz, stereo, s16, 128 kb/s

  Duration: 01:42:25.68, start: 0.000000, bitrate: 952 kb/s
    Stream #0.0: Video: h264 (High), yuv420p, 600x244 [PAR 1:1 DAR 150:61], 25 fps, 25 tbr, 25 tbn, 50 tbc
    Stream #0.1: Audio: mp3, 48000 Hz, stereo, s16, 112 kb/s

ご覧のとおり、ビットレート、ビデオ サイズ、コーデックはさまざまです。iPhone 用に変換するスクリプト (bash、perl) を書きたいffmpeg.

グーグルで私は多くの異なるffmpegプロファイルを見つけましたが、すべてのプロファイルは「静的」です。たとえば、ビデオを同じ解像度に変換しますが、これはおそらく正しい方法ではありません. (これはオーディオにも当てはまります)。

スクリプトを書くことはできますが、基本的な質問が 1 つあります。

上記の結果ffmpegから引数の値を計算するアルゴリズムの助けが必要です。ffprobeたとえば、ビデオが 704x544 と 845kb/s で、サイズが 640x480 でビットレートが 3200kb/s の別のビデオがある場合ffmpeg、スクリプトで「正しい値」を計算するにはどうすればよいでしょうか?

目的のデバイス用にビデオをトランスコードするための正しいアルゴリズム/ロジックは何ですか? (私の場合はアイフォン)

誰かが気になるなら、私はffmpegを「不自由な」コーデックで再コンパイルし、mencoder(mplayerパッケージから)も持っています。

2 番目: avi コンテナーには、既に mpeg4 形式の多くのビデオがあります。「最速」の変換プロファイルを決定する方法は? 可能性の低い計算のみを行うプロファイルを意味するffmpegため、おそらくそのまま残します。形式mpeg4、サイズ、ビットレート、および「のみ」がコンテナ形式を変更します。これは可能ですか?

ffmpeg私は多くのSOの質問を読みましたが、答えが見つかりませんでした.何かを見逃したのかもしれません. 誰かが私にいくつかの良いドキュメントを教えてもらえますか?

4

1 に答える 1

0

gstreamerを使用してみましたか?その場合は、コマンドラインのgst-launchを実行して、入力ファイルを自動デコードし、必要な形式にサイズ変更してから、再エンコードしてmovファイルに再マルチプレクサすることができます。正確な行は、オーディオの有無、および.movファイルの書き込みに使用する具体的なコーデックによって異なります。

XYZ-> ABC.movをオーディオなしで再エンコードし、320x240のサイズ変更とh263エンコードを行う例:

gst-launch   filesrc location=XYZ ! decodebin2 ! ffmpegcolorspace ! videoscale add-borders=true ! video/x-raw-yuv, width=320, height=240 ! ffmpegcolorspace ! ffenc_h263 ! qtmux ! filesink location=ABC.mov
于 2012-09-28T13:10:48.910 に答える