2016-11-15 33 views
2

thisに続いて、シーケンス画像をh.264ビデオにエンコードします。ここでFFmpegを使用してRTMP経由でH.264エンコードストリームを送信

は、私のコードの一部を出力している:

int srcstride = outwidth*4; 
sws_scale(convertCtx, src_data, &srcstride, 0, outheight, pic_in.img.plane, pic_in.img.i_stride); 
x264_nal_t* nals; 
int i_nals; 
int frame_size = x264_encoder_encode(encoder, &nals, &i_nals, &pic_in, &pic_out); 
if (frame_size) { 
    fwrite(nals[0].p_payload, frame_size, 1, fp); 
} 

これは、フレームを処理して、ファイルにそれらを書き込むためのループです。

今、これらのエンコードされたフレームをRTMPでストリーミングしようとしています。私が知っているように、RTMPのコンテナはFLVです。だから私は、裁判のようにコマンドラインを使用:この1つは、H.264エンコードされたビデオファイルをストリーミングとしてうまく機能

ffmpeg -i test.h264 -vcodec copy -f flv rtmp://localhost:1935/hls/test 

を。

しかし、どのようにC++コードとして実装し、生成されたときに同時にフレームをストリーミングすることができますか?私がFacetimeカメラのストリームを作成したのと同じです。

ffmpeg -f avfoundation -pix_fmt uyvy422 -video_size 1280x720 -framerate 30 -i "1:0" -pix_fmt yuv420p -vcodec libx264 -preset veryfast -acodec libvo_aacenc -f flv -framerate 30 rtmp://localhost:1935/hls/test 

これは一般的で実用的なトピックです。しかし、私はここに数日間留まり、本当に関連するexprienceが必要です。ありがとうございました!

+0

これまでにこれを分類しましたか? –

答えて

0

libavformat(dranger、google it)のようなチュートリアルを探したり、h.264ストリームをstdioに書き込んだり、ffmpegにパイプしたりしてください。

関連する問題