본문 바로가기

잡(job)기술/ffmpeg 라이브러리8

DASH 미디어 생성할 때, segment와 fragment 구글에서 DASH라고 검색을 하면 원하는 자료가 잘 나오지 않는다. MPEG-DASH 혹은 DASH streaming 등으로 검색을 하면 제대로 검색을 할 수 있는 것 같다. DASH가 어떤 표준이고, 어디에 사용되는지 등의 내용을 구글링에 맡긴다. DASH 나 HLS 방식의 미디어는 다른 미디어와는 다르게 파일이 쪼개어 구성이 된다. 그래서 segment니, fragment라는 말을 자주 보게 되는 것 같다. segment는 DASH의 특성이며, 웹을 통해 다운로드하게 되는 최소의 단일 파일을 의미한다. mp4 포멧으로 생성한다면 m4s라는 확장자로 저장되는 파일을 말한다. 마지막에 s가 의미하는 것이 아마도 segment 의 약자일 것 같다. 이 파일이 생성되는 기준은 일반적으로 duration 이라.. 2022. 7. 28.
Remux 클래스로 전환 드디어, 본격적인 C++ 프로그래밍을 할 차례이다. 우선 리소스 할당 문제부터 정리할 필요가 있다. remux() 함수는 goto 문을 이용해서 깔끔하게 리소스 문제를 해결하고 있다. 그러나, goto로 인한 제어루틴의 변경은 코드 따라가기를 상당히 힘들게 한다. remux 과정을 클래스로 묶음으로써 리소스 해제를 좀 더 C++스럽게 완료할 수 있다. remux() 함수를 Remux 라는 클래스로 포팅하는 과정을 이 글에서 정리한다. 지난 번 글의 소스 코드에서 시작한다. https://craftsmanship.tistory.com/110 명령 라인 처리 옮기기 이번에는 지난 번 글에 이어서, 명령 라인 처리를 옮기는 과정만 기록한다. 역시 짧은 글이 될 것 같다. https://craftsmanship.. 2022. 4. 6.
명령 라인 처리 옮기기 이번에는 지난 번 글에 이어서, 명령 라인 처리를 옮기는 과정만 기록한다. 역시 짧은 글이 될 것 같다. https://craftsmanship.tistory.com/109 remuxing.c 를 c++로 wrapping하기 이번 글은 굉장히 간단할 것 같다. C 언어로 작성된 내용을 C++에서 링크에서 사용하는 것은 다른 언어에 비해 아주 쉽다. 지난 번 글에서 이용한 remuxing.c 에 있는 main 함수를 C++에서 사용할 수 있 craftsmanship.tistory.com 명령 라인 처리 부분 옮기기 C영역의 remux() 함수를 원래의 main()에서 옮기다 보니, 명령 라인 처리도 이 함수에서 하고 있다. 그러므로, 이 처리는 C++영역의 main()으로 옮기는 것이 맞다. remux().. 2022. 4. 1.
remuxing.c 를 c++로 wrapping하기 이번 글은 굉장히 간단할 것 같다. C 언어로 작성된 내용을 C++에서 링크에서 사용하는 것은 다른 언어에 비해 아주 쉽다. 지난 번 글에서 이용한 remuxing.c 에 있는 main 함수를 C++에서 사용할 수 있도록 작업을 진행한다. https://craftsmanship.tistory.com/108 remuxing.c 빌드하기 영상 혹은 음성 데이터를 처리하는 업무를 종종 하게 된다. ffmpeg 라이브러리 도움을 많이 받는다. 특정 포멧의 미디어 데이터를 입력으로 해서 다른 포멧의 미디어 데이터를 만들어내야 하는 기 craftsmanship.tistory.com C 영역에서의 작업 우선, C의 main함수를 C++에서 링크할 수 있도록 이름을 변경한다. int main(int argc, char.. 2022. 3. 30.