5

私はC#アプリを持っています。私は100個のJPEGを持っています(例として)。

これをビデオファイルに簡単にエンコードできます。

クライアント アプリでのエンコードが完了したら、サーバーに FTP アップロードします。

ビデオファイルをディスクに書き込めず、代わりにメモリストリーム(またはバイトの配列)に書き込んで、おそらくWebサービス経由でアップロードできれば、「よりきれい」になりますか?

ffmpeg のドキュメントを確認しましたが、C# 開発者として C の例を理解するのは自然なことではありません。

私の最初の質問は可能だと思います。もしそうなら、誰かがC#でサンプルコードを投稿できますか? 現在、C# のプロセス クラスを使用して ffmpeg を実行しています。

4

1 に答える 1

7

あなたのプロセスメソッドはすでに優れていますが、調整が必要です:

  1. と を設定StartupInfo.RedirectStandardOutput = trueStartupInfo.UseShellExecute = falseます。
  2. 出力ファイル名の代わりに、 を指定して ffmpeg を呼び出しpipe:ます。これにより、標準出力に書き込まれます。また、ファイル名から形式を判別できなくなっているため、必ず-f <format>スイッチも使用してください。
  3. プロセスを開始します。
  4. Process.StandardOutput.BaseStreamプロセスがメモリストリームに実行されている間に( .BaseStream、それがStreamReader混乱.StandardOutputしないように)から読み取ります。
  5. にまだバッファリングされているものをすべて読み取りProcess.StandardOutput.BaseStreamます。
  6. 利益。

しばらく前に (BSD 2-clause)サムネラーをコーディングしました。これには、これを示す実際のコードがあります。最終的にffmpegから出てくるのが画像かビデオかは関係ありません。

于 2013-10-28T16:35:24.577 に答える