
良い一日。
多くのWebプログラマーは、遅かれ早かれビデオを扱う必要があります。 私にはこの問題が発生しました。
ロシア語および外国のサイトの両方で、フォーラムやブログにインターネット上の多くの記事があります。 しかし、指示で示唆されているように、結果は期待した結果を与えませんでした。 これがこの記事の理由です。 彼女は
私が多くの初心者の
ために行うのと同じように役立つと思います。
さあ始めましょう
Ubuntu 11.04(Natty Narwhal)を搭載したマシンで、すべてがルートの下で行われました。
root@r2d2:~
古いものがある場合は、まず削除します
root@r2d2:~
パッケージのリストを更新する
root@r2d2:~
希望するものをインストールする
root@r2d2:~
H.264ビデオストリームをエンコードするためのライブラリをインストールする
詳細は
こちらと
こちらをご覧ください 。
root@r2d2:~
ここで余談をする必要があります。
--enable-shared
パラメータなしでx264を設定すると、ライブラリはデフォルトのディレクトリ(/ usr / local / binがあります)にインストールされ、ffmpegが起動すると、libx264ライブラリの不明な場所に関するエラーがスローされます。
エラー:libx264が見つかりません
--enable-shared
オプションを
--enable-shared
すると、checkinstallコマンドの後の結果は次のようになります。
install -d /usr/local/bin install x264 /usr/local/bin install -d /usr/local/include install -d /usr/local/lib install -d /usr/local/lib/pkgconfig install -m 644 x264.h /usr/local/include install -m 644 x264_config.h /usr/local/include install -m 644 x264.pc /usr/local/lib/pkgconfig ln -f -s libx264.so.116 /usr/local/lib/libx264.so install -m 755 libx264.so.116 /usr/local/lib
Debianにインストールするときにlibx264ライブラリにも問題がありました。
--prefix=/shared
オプションは、x264の設定時に役立ちました。
root@r2d2:~/x264
Ffmpegのインストール
詳細は
こちらと
こちらをご覧ください 。
root@r2d2:~
その結果、次のことができます。
root@r2d2:~
root@r2d2:~
さて、コンソールで入力すると
ffmpeg -threads 4 -y -i "video.avi" -vcodec libx264 -vpre "hq" -b 2000k -acodec libfaac -ar 44100 -ab 128k -ac 2 "video.flv"
出力は、独自の目的に使用できる変換されたファイルです。
変換オプションについて少し
-iはソースファイルの名前です。
-ar-サウンドサンプリング周波数(11kHzの倍数である必要があります);
-ab-オーディオビットレート。
-ac-サウンドチャンネルの数(1-モノ、2-ステレオ);
-f-発信ビデオファイルの形式。
-b-ビデオビットレート(30k、200k、512k、1024k);
-maxrate-ビデオストリームエンコーディングの最大ビットレート(9000k)。
-r-1秒あたりのフレーム数(FPS)。
-s-ピクセル単位のビデオサイズ。
-fs-出力ファイルの最大サイズを設定します。
-vpre-事前に定義された変換オプション(プリセット)を持つファイル。
-ss 00:02:00-ファイルの先頭からの時間オフセット(位置)。 ここ:最初の2分をスキップします(秒単位でシフト)。 秒で設定 または次の形式の時刻:hh:mm:ss [.xxx];
-vframes-ビデオフレームの数の制限。
-y-ファイルが既に存在する場合は上書きします。
-アスペクト-アスペクト比(4:3、16:9、1.3333);
-acodec-オーディオコーデック(libfaac、aac、libmp3lame);
-vcodec-ビデオコーデック(libx264);
-threads 0-コンピューターのコアの数。 値:0-4. 0-プロセッサコアの数を自動的に決定し、プロセスで使用します。
ffmpegには、エンコードの設定が事前定義されたファイルがあります。 それらはffmpeg / ffpresetsフォルダーにあります
root@r2d2:~/ffmpeg/ffpresets
そして、インストール後に/ usr / local / share / ffmpeg /にあるはずです。 ファイルの名前から、特定のファイルが何を担当しているかを推測できます。 これらのファイルの詳細については、上記のリンクをご覧ください。
例で使用されている設定ファイル
root@r2d2:/usr/share/ffmpeg
インストール済みのすべてからのロールバック
root@r2d2:~
PHPを使用してビデオ情報を取得する
ビデオに関する情報を取得するには、
この投稿で見つけた少しやり直した機能を使用します。
function get_video_size($videofile) { define('MAX_VIDEO_WIDTH', 200); $vwidth = 0; $vheight = 0; $owidth = 0; $oheight = 0; $duration = array(); $bitrate = 0; $audio_bitrate = 0; $sfrequency = 0; ob_start(); passthru('ffmpeg -i "' . $videofile . '" 2>&1 | egrep -e "(Duration|Stream)"'); $ffmpeg_output = ob_get_contents(); ob_end_clean(); if (sizeof($ffmpeg_output) == 0) { return null; } foreach (explode("\n", $ffmpeg_output) as $line) { $ma = array();
その結果、既製の例があります
$ffmpeg_path = 'ffmpeg';