본문 바로가기
잡(job)기술/ffmpeg 라이브러리

명령 라인 처리 옮기기

by 무니이구나 2022. 4. 1.

이번에는 지난 번 글에 이어서, 명령 라인 처리를 옮기는 과정만 기록한다. 역시 짧은 글이 될 것 같다.

https://craftsmanship.tistory.com/109

 

remuxing.c 를 c++로 wrapping하기

이번 글은 굉장히 간단할 것 같다. C 언어로 작성된 내용을 C++에서 링크에서 사용하는 것은 다른 언어에 비해 아주 쉽다. 지난 번 글에서 이용한 remuxing.c 에 있는 main 함수를 C++에서 사용할 수 있

craftsmanship.tistory.com

명령 라인 처리 부분 옮기기

C영역의 remux() 함수를 원래의 main()에서 옮기다 보니, 명령 라인 처리도 이 함수에서 하고 있다. 그러므로, 이 처리는 C++영역의 main()으로 옮기는 것이 맞다.

remux() 함수의 인자를 입력파일 이름과 출력파일 이름을 받도록 변경한다.

int remux(const char *in_filename, const char *out_filename)
{
...
}

main() 함수에서는 remux() 함수에서 처리하던 명령 라인 처리하는 부분을 가져온다.

#include <cstdio>

int main(int argc, char* argv[])    {
    if (argc < 3)
    {
        printf("usage: %s input output\n"
               "API example program to remux a media file with libavformat and libavcodec.\n"
               "The output format is guessed according to the file extension.\n"
               "\n",
               argv[0]);
        return 1;
    }

    return remux(argv[1], argv[2]);
}

소스 저장소

작성한 코드는 깃헙에 업데이트한다.

https://github.com/moonyl/rtsp-to-web-live/tree/cmdline

 

GitHub - moonyl/rtsp-to-web-live

Contribute to moonyl/rtsp-to-web-live development by creating an account on GitHub.

github.com