2016-10-05 2 views
-1

공유 메모리에서 렌더링 된 이미지를 읽고이를 파이프 (mkfifo)에 기록하는 C++ 프로그램이있어서 ffmpeg로 캡처하여 ffserver를 통해 라이브 비디오로 스트리밍 할 수 있습니다 . 내 스트림이 작동하려면 프로그램과 ffmpeg 명령을 별도로 시작해야합니다. ffmpeg를 프로그램에 포함시키고 파이프를 피할 수 없는지 스스로에게 묻습니다.은 C++ 프로그램에서 ffmpeg-command를 포함합니다.

내는 FFmpeg 명령 :

ffmpeg -re -f -rawvideo -s 800x600 -pix_fmt rgb24 -i myfifo http://localhost:8090/feed1.ffm 

내 질문은 :

가 무엇 C++로는 FFmpeg-명령을 포함하는 가장 좋은 방법이 될 것입니다 - 프로그램을? 이 솔루션을 개선하기위한 다른 아이디어가 있습니까?

도움을 주시면 대단히 감사하겠습니다. 미리 감사드립니다. 당신이 리눅스에있는 가정, 시스템()를 사용하는

더 쉬운이, 그리고는 FFmpeg 명령을 실행 :

답변

-1

이 두 가지 방법이 있습니다. Can FFmpeg be used as a library, instead of a standalone program?을 :

if(system("ffmpeg -re -f -rawvideo -s 800x600 -pix_fmt rgb24 -i myfifo http://localhost:8090/feed1.ffm") != 0) 
{ 
    cout << "ffmpeg failed..." << endl; 
} 

어려운

은 프로젝트의 라이브러리를 포함하고, 내부적으로 사용하는 것입니다.

이 libav (는 FFmpeg에서 사용하는 내부 라이브러리)을 사용하는 방법에 대해 설명 https://trac.ffmpeg.org/wiki/Using%20libav *을 체크 아웃 시작하려면, 나는 튜토리얼 http://dranger.com/ffmpeg/tutorial01.html

을 따르도록 권장합니다
관련 문제