これが再投稿/同様の投稿である場合は、こことGoogleで既に作成された投稿内で問題の特定の解決策を検索するために最善を尽くしましたが、できなかった場合はまずお詫び申し上げます.
サーバーにアップロードする前に、win64 システムの localhost で ffmpeg を使用して、ビデオ変換スクリプトを作成/テストしています。
mp4/flv/wmv/mov との間で問題なく変換できますが、他の形式から .ogg に変換しようとすると、問題が発生します。
最初にこれを試しました:
exec($ffmpegPath." -i ".$srcFile." ".$destFile);
しかし、ビデオ/サウンドのない破損したファイルになってしまいました。次に、それを読んで、.ogg に変換するときに libvorbis/libtheora を明示的に有効にする必要があるという投稿を見つけたので、これを試しました。
$aCodec = ' -acodec libvorbis';
$vCodec = ' -vcodec libtheora';
exec($ffmpegPath." -i ".$srcFile.$aCodec.$vCodec." ".$destFile);
今回はサウンド付きの有効な .ogg ファイルを取得しましたが、ビデオ出力は非常に不安定です。問題を見つけようとして、exec 行を編集し始めたところ、次のようになりました。
$ffmpegObj = new ffmpeg_movie($srcFile);
$srcVB = intval($ffmpegObj->getVideoBitRate());
$vCodec = ' -vcodec libtheora';
exec($ffmpegPath." -i ".$srcFile.$vCodec." -vb ".$srcVB." ".$destFile);
これにより、.ogg ビデオが高品質で音声なしで出力されます。
さらにソフトウェア(ffmpeg2theora)などをインストールする必要がある前に、この問題が他に何であるかについてのアイデアはありますか?
また、それが役立つ場合は、ffmpeg からの出力をエコーアウトし、上記のアプローチ #2 を使用すると多くのエラーが表示されます。
100 buffers queued in output stream 0:1, something may be wrong.
[ogg @ 00000000024bf780] st:0 PTS: 6743 DTS: 6743 < 7745 invalid, clipping
[ogg @ 00000000024bf780] st:0 PTS: 6871 DTS: 6871 < 7746 invalid, clipping
[ogg @ 00000000024bf780] st:0 PTS: 6999 DTS: 6999 < 7747 invalid, clipping
[ogg @ 00000000024bf780] st:0 PTS: 7127 DTS: 7127 < 7748 invalid, clipping
[ogg @ 00000000024bf780] st:0 PTS: 7255 DTS: 7255 < 7749 invalid, clipping
[ogg @ 00000000024bf780] st:0 PTS: 7383 DTS: 7383 < 7750 invalid, clipping
libvorbis と libtheora がうまく連携していないように見えますか?
最後に、ffmpeg.exe ビルドを数回変更しましたが、同じ問題が発生します。
前もって感謝します。
編集:可能な回避策として、ビデオ/オーディオを別々にエンコードしてから、それらを元に戻す方法はありますか? これにより、オーディオ/ビデオの同期の問題が発生する可能性はありますか?