3

私はiOSを初めて使用するため(今日から始めました)、これは初心者の質問です。私の無知とiOSの知識の欠如をご容赦ください。

Android 用の FFMpeg をビルドして正常に使用した後、iOS でも同じことを行いたいと考えました。それで、このリンクに従ってiOS用のFFMpegを正常にビルドしましたが、iOSでFFMpegを使用する方法について混乱した後、コマンドライン引数をlibffmpeg.aファイルに渡すにはどうすればよいですか?

.a ファイルを実行可能ファイルとして実行し、コマンド ライン引数を渡し、FFMpeg が魔法を実行することを期待する方法が必要であると想定しています。Android でも同じことを行い、見事に動作しました。

また、ffmpeg.c クラスを使用してその main メソッドを使用できることも認識していますが、疑問は残ります。これらのコマンド ライン引数を渡すにはどうすればよいですか?

ここで私が認識すべきことはありますか、私が今行っていることは正しいですか、それとも私のアプローチが不十分ですか?

2 つのオーディオ ファイルをミックスしたかったので、それを行うためのコマンドは次のようになりますffmpeg -i firstSound.wav -i secondSound.wav -filter_complex amix=inputs=2:duration=longest finalOutput.wav。iOS で同じことを行うにはどうすればよいですか?

誰かがこれに光を当てることができますか?

4

2 に答える 2

2

あなたはあなたの中でそれをすることができますmain.c、そしてもちろんあなたは引数をハードコーディングしないでしょうこれらは単なる説明のためです

ffmpegで遊んでから再生に使っていると思いますiframeextractorが、実際にやろうとしていることの目標は何ですか。

/* Called from the main */
int main(int argc, char **argv)

int flags, i;
/*
argv[1] = "-fs";
argv[2] = "-skipframe";
argv[3] = "30";
argv[4] = "-fast";
argv[5] = "-sync";
argv[6] = "video";
argv[7] = "-drp";
argv[8] = "-skipidct";
argv[9] = "10";
argv[10] = "-skiploop";
argv[11] = "50";
argv[12] = "-threads";
argv[13] = "5";
//argv[14] = "-an";
argv[15] = "http://172.16.1.33:63478/hulu-f4fa0821-767a-490a-8cb5-f03788760e31/1-hulu-f4fa0821-767a-490a-8cb5-f03788760e31.mpg";
argc += 14;
*/


/* register all codecs, demux and protocols */
avcodec_register_all();
avdevice_register_all();
av_register_all();


parse_options(argc, argv, options, opt_input_file);

. .. mo
} 
于 2013-01-09T15:20:07.733 に答える
2

.a ファイルはライブラリ ファイルであるため、引数を渡しません。これはアプリケーションを構築するためのものであり、ffmpeg ライブラリによって提供される機能にアクセスできます。Android でのプレイの状態がどのようなものかはわかりませんが、代わりにコマンドライン実行可能ファイルを生成している可能性があります。

ffmpeg のドキュメントを参照してください。ライブラリで必要なことを行う方法はおそらくありますが、ffmpeg をスタンドアロンの引数で渡すバイナリとしてビルドして実行することはほとんどありません。

于 2013-01-09T13:17:19.593 に答える