0

現在、h.264 エレメンタリー ストリーム (postfix .264 のファイル) をトランスポート ストリーム (postfix .ts のファイル) に変換する作業を行っています。ffmpegコマンドライン「ffmpeg -i in.264 -an -vcodec copy -f mpegts out.ts」を使用して変換を正常に終了しました。

ここで、ffmpeg のライブラリを呼び出して、独自の C++ コードを使用してこの変換を実装したいと考えています。コンパイル済みの ffmpeg ライブラリ (libavcodec、libavformat など) をダウンロードしました。私の入力 h.264 は、ライブ ストリームではなく、事前に記録されたファイルであり、出力 .ts ファイルと同様です。私の質問は、変換を実装するためにライブラリ内のどの関数を呼び出す必要があるかということです。

4

3 に答える 3

1

Linux に ffmpeg をインストールすると、ffmpeg.c という名前のサンプル ファイルが表示されます。このファイルには、opt_audio_codec、opt_video_codec、opt_audio_rate、opt_video_rate、opt_default など、デコード パラメータを設定する多くのオプションがあります。コマンドから必要なパラメータを設定するだけです (-i in.264 -an -vcodec copy -f mpegts out.ts)。 ffmpeg.c ファイルの「main」関数から「transcode」または「av_encode」関数を呼び出す前に、適切な関数を使用します。

于 2012-07-03T11:11:46.037 に答える
0

独自のコードで行う必要はありません。代わりに、プログラムで ffmpeg プロセスを生成することができます。CreateProcessWindows またはspawnLinuxで使用します。

于 2012-07-03T06:58:01.743 に答える
0

ライブラリ呼び出しをリストするほど単純ではありません。これは、入力ファイルの読み取りを開始するのに役立つ古いチュートリアルです。また、ffmpeg のソースに含まれている decode_encoding.c という例もあります。これらは、開始するのに役立ちます。

于 2012-07-02T18:27:12.997 に答える