본문 바로가기

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

remuxing.c 빌드하기 영상 혹은 음성 데이터를 처리하는 업무를 종종 하게 된다. ffmpeg 라이브러리 도움을 많이 받는다. 특정 포멧의 미디어 데이터를 입력으로 해서 다른 포멧의 미디어 데이터를 만들어내야 하는 기능이 필요한 상황이 발생했다. 소스 영상(H.264)의 코덱은 유지해도 되는 상황이라 이에 딱 맞게도 ffmpeg 소스에 remuxing.c 라는 예제가 있다. 이것을 실제로 빌드해서 실행해보는 과정을 정리한다. 우선 ffmpeg 라이브러리가 필요하다. 개발용 패키지를 받는 방법, 이미 빌드해서 배포하고 있는 바이너리를 이용하는 방법, 직접 소스를 받아 빌드하는 방법 등이 있지만, 직접 소스를 받아 빌드하되 이를 쉽게 할 수 있도록 해주는 vcpkg를 이용해서 빌드한다. vcpkg는 다음 링크에서 한글로도 친절하게.. 2022. 3. 28.
av_frame_free에 대한 고찰 av_frame_free() 가 처리하는 범위 AVFrame *frame = av_frame_alloc();int ret = av_image_alloc(frame->data, frame->linesize, 1920, 1080, AV_PIX_FMT_RGBA, 32); av_frame_alloc() 에서는 AVFrame 크기의 메모리를 할당하고 기본값을 설정한다. 실제 sizeof(AVFrame) 을 통해서 크기를 알아보면 384 바이트이다. av_image_alloc() 에서는 frame->data 가 가리키는 메모리 배열에 format 에 따라 영상 데이터 크기만큼 메모리를 할당한다. AV_PIX_FMT_RGBA 의 경우에는 data 의 메모리 배열에서 하나만 사용한다. 한 라인의 데이터 크기값은 lin.. 2018. 3. 13.
Audio sample과 frame 이전부터 정리하고 머릿속에 박아 넣어둬야지 하면서, 차일피일 미뤄두던 일을 드디어 하게 된 것 같다. 학교 때 신호처리 이론을 배운 이후로 대충 이럴 것이다라는 생각만 가지고 있었고, 코딩을 할 때는 copy & paste 신공으로 보통 해결이 되다보니 게으름이 매번 승리하고 있었다. 동영상이든 음악 파일이든 오디오가 포함되어 있고, 이에 대한 정보로 44100 Hz혹은 44.1KHz 라는 표시가 되어 있다. 이 의미는 초당 441000번으로 오디오 데이터를 샘플링했다는 의미가 된다. 샘플링을 많이 할 수록 원음에 가까운 소리로 복원할 수 있다. 44.1KHz 는 CD 음질로 사용된다. 오디오 관련 코딩을 할 때 sample rate라는 말이 자주 등장하는데, 44100 이라는 값이 바로 이것을 의미한다.. 2018. 3. 13.
Live555 library를 이용한 디버깅 환경 구축 개요 실시간으로 스트리밍을 할 수 있는 방안을 찾기 위해 RTP 를 검토하는 중, 이를 지원하는 live555 라이브러리를 이용하여 개발 환경을 구축하는 방법과 간단한 테스트를 해볼 수 있는 내용을 공유하고자 이 글을 작성한다. Live555 library란? Live555는 RTP/RTCP, RTP 를 이용해서 멀티미디어 스트리밍을 하기 위해 사용할 수 있는 라이브러리이다. Linux 를 비롯한 Unix 계열과 Windows 플랫폼 모두 사용 가능하다. MPEG, H.265, H.264, JPEG 등의 비디오와 AAC와 MP3 같은 오디오 전송을 기본적으로 지원하고 있다. 다음 URL 로 홈페이지에 방문할 수 있다. http://www.live555.com/liveMedia/ LIVE555 Stream.. 2017. 1. 31.