0

サーバーからクライアントにビデオ(オーディオなし)をストリーミングしたい。libx264を使用してビデオをエンコードし、ffmpegでデコードします。固定設定を使用する予定です(少なくとも、クライアントとサーバーの両方で事前に認識されます)。圧縮されたビデオをコンテナ形式(mp4やmkvなど)でラップすることを回避できるかどうか疑問に思いました。

現在、x264_encoder_encodeを使用してフレームをエンコードできます。圧縮されたフレームが返され、すべてのフレームに対してそれを行うことができます。ffmpegが圧縮されたフレームをデコードできるように、クライアントに送信する必要のある追加情報(あるとしても)、さらに重要なことに、libx264でそれを取得するにはどうすればよいですか。NAL情報(x264_nal_encode?)を生成する必要があるかもしれないと思います。ビデオを伝えるために最低限必要なものと、それらを組み合わせる方法を理解しておくと、非常に役立ちます。

4

1 に答える 1

0

最小量の情報は各フレームのNALユニットであることがわかりました。これにより、生のh264ストリームが得られます。これをファイルに書き込む場合、.h264を追加すればVLCを使用して監視できますが、ffmpegを使用してそのようなファイルを開くこともできますが、ストリーミングする場合は、RTSPを使用する方が理にかなっています。そのためのオープンソースライブラリはLive555です:http ://www.live555.com/liveMedia/

彼らのFAQには、エンコーダーからの出力をlive555に送信する方法が記載されており、クライアントとサーバーの両方のソースがあります。私はまだこれをコーディングし終えていませんが、それは合理的な解決策のようです

于 2012-03-18T23:20:35.583 に答える