mp3 をより低いビットレートに変換したいと考えています。また、Perl を使用してビデオを mp3 に変換したいと考えています。ffmpeg モジュールを見ましたが、ファイルの変換をサポートしているようには見えません。私が見た唯一の例は、ビデオ ストリームから画像を取得することでした。system() を使用して ffmpeg を呼び出さずに Perl でこれを行う方法はありますか?
5 に答える
FFmpeg モジュールを試しましたか? メソッドは、transcode()
あなたが望むことをするように見えます。
pacpl
さまざまなオーディオと少なくともいくつかのビデオ変換を行うというプロジェクトがあります。ソースを見ると、system()
コマンドを使用して などのサードパーティのユーティリティを実行していますffmpeg
。あなたが尋ねたことと同様の変換を行うことに興味があり、pacpl
自分で試してみるつもりです.
これまでのところ、純粋な Perl の回答はないようです。すべての方法で、他の変換ソフトウェアが使用されます。これは、C で書かれた他のプログラムを使用する方がおそらく効率的であることを示しています。
だから私はあなたに質問を返します: を使用したくない理由は何system()
ですか?
なぜ別のプロセスを避けたいのですか?私はこれを行うPerlスクリプトを持っており、変換したいビデオごとにプロセスをフォークします。そうすれば、同時に複数のビデオを変換して、マスターPerlプログラムに必要なことをすべて実行させることができます。
完了するまでブロックするシステムを使用する必要はありません。外部プロセスと通信する方法は他にもたくさんあります。詳細については、perlipcのドキュメントを参照してください。
外部プログラムとやり取りする方法のリストについては、Perl backtics vs system vs execへの回答を参照してください。そのプログラムへの Perl インターフェースを探しているなら、CPANを探すことをお勧めします。
Unix ベースのプラットフォームを使用している場合は、Gstreamer の使用を検討します。これには perl バインディングがあり、オーディオ ビデオ データを変換するための Gstreamer パイプラインを設定するのはかなり簡単です。