さまざまな形式 (主に 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の質問を読みましたが、答えが見つかりませんでした.何かを見逃したのかもしれません. 誰かが私にいくつかの良いドキュメントを教えてもらえますか?