2012-04-30 15 views
0

私は数百のビデオファイルを持つs3バケットを持っています。
これらのファイルは、ffmpegを使用して大きなビデオファイルの一部を切り取って作成されました。
これは、別のバケットから元のビデオファイルをダウンロードし、ffmpegを実行してファイルをカットし、新しいファイルをそのバケットにアップロードするためのスクリプトを作成しました。 s3からダウンロード/アップロードする場合は、this php libraryを使用しました。私が使用し
ffmpegの構文:ffmpeg h.264無効な切り取り

ffmpeg -y -vsync 2 -async 1 -ss [time-in] -t [duration] -i [large-input-video.mp4] -vcodec copy -acodec copy [short-output-video.mp4] 

ばかりのA/Vコーデックを変更することなく、指定した時間の間に、元のファイルをカットしなければなりません。
元のビデオファイルはすべてh.264でエンコードされています。これは、新しいファイル(クライアントのFlash PlayerにCDNを介してストリーム配信される)のエンコードにも必要です。

私の問題は、新しいファイルのほんの一部がh.264でエンコードされて出てきていますが、それらのほとんどはそうではありません(h.264は必須です。そうでなければファイルはクライアントの '側)。
私は元のビデオに問題をトレースすることはできません。同じffmpegコマンドを手動で同じパラメータと同じファイルで使用すると、出力ファイルが正常に出力されるためです。それは恣意的と思われる。

ffprobeを使用して、ファイルのコーデックに関する情報を取得します。たとえば

大(元)のビデオファイルの一つのffprobe:

...
ストリーム#0.0(ウント):ビデオ:H264、YUV420P、640x352、499キロバイト/ S、25 fpsで、25 TBR、90K TBN、50
TBC ...対応した新たなカットファイルの

ffprobe:

...
ストリーム#0.0(ウント):ビデオ:MPEG4、YUV420P、640x352 [PAR 1:1 DAR午後08時11]、227キロバイト/秒、25のFPS、25 TBR、25 TBN、25 TBC
...

見られるように、違いは 'H264' 対 'MPEG4' です。

新しいファイルが間違ったエンコードで出力される原因については、十分に理解できます。

ありがとうございます!

編集:すべてのファイルを分析した後
解決済みの問題は、私はそれらの3分の2が間違ったコーデックに出てきていることに気づきました。
私は3つのマシンを切断プロセス(3つの別々のEC2サーバー)に使用していたので、2つのマシンでffmpegがインストールされていませんでした(@LordNeckbeardが答えました)。
私は、3番目のマシンだけで、無効なファイルに対してのみプロセスを再実行しました。

答えて

0

出力ファイルの「mpeg4」は、ビデオストリームをコピーする代わりに、ffmpegが再エンコードされている可能性が最も高いと考えられます。あなたはその情報を提供していないので、私はオーディオについて同じことを言うことはできません。古いffmpegでは、MP4コンテナを使用する出力のデフォルトとして、「mpeg4」ビデオエンコーダが使用されます。 ffmpegを手動で呼び出すときは、すべてが正常に動作するので、スクリプトまたはライブラリを確認してください。

-vcodec copy -acodec copyを使用すると、おそらく-vsync 2 -async 1が無視されることがあります。

カット出力をqt-faststart(ffmpegソースに含まれています)またはMP4Boxで実行することもできます。これにより、一部のデータがファイルの先頭に移動するため、ビデオがクライアントによって完全にダウンロードされる前に再生が開始されます。

最後に、-ssの配置が重要です。入力オプション(-iの前)は、すぐに希望の時間を探してデコードを開始するので、はるかに高速ですが、所望の時刻より前にすべてを完全にデコードする出力オプションとして-ssほど正確ではありません。精度が速度よりも重要である場合は、出力オプションとして-ssをテストすることを検討してください。

+0

貴重なヒントをありがとう! a/vシンクについて - それを使わないでコマンドを実行すると、オーディオとビデオの間に非常に顕著な遅延が生じます。元の問題については、元の投稿に私の追加を参照してください。 – EyalAr

関連する問題