[c++] Taglib으로 Opus 파일 처리하기

Opus는 고성능의 오디오 코덱으로, 고음질 오디오를 구현하는 데 사용됩니다. Opus 파일에는 메타데이터를 추가하거나 읽어야 할 수 있습니다. C++에서 Opus 파일의 메타데이터를 처리하려면 Taglib 라이브러리를 사용할 수 있습니다. 이 라이브러리는 여러 오디오 파일 형식의 메타데이터를 쉽게 다룰 수 있도록 도와줍니다.

이 포스트에서는 Taglib을 사용하여 Opus 파일에서 메타데이터를 읽고 쓰는 방법에 대해 설명하겠습니다.

Taglib 설치하기

먼저 Taglib을 시스템에 설치해야 합니다. 다음은 Linux 기반 시스템(Ubuntu)에서의 설치 방법입니다.

sudo apt-get install libtag1-dev

다른 시스템에서는 해당 시스템의 패키지 관리자를 사용하여 Taglib을 설치하면 됩니다.

Opus 파일에서 메타데이터 읽기

다음은 Opus 파일의 메타데이터를 읽는 간단한 예제 코드입니다.

#include <taglib/fileref.h>
#include <taglib/opusfile.h>
#include <iostream>

int main() {
    TagLib::FileRef f("sample.opus");

    if (!f.isNull() && f.audioProperties()) {
        TagLib::Opus::File file(f.file());

        std::cout << "Title: " << file.tag()->title().toCString(true) << std::endl;
        std::cout << "Artist: " << file.tag()->artist().toCString(true) << std::endl;
        std::cout << "Album: " << file.tag()->album().toCString(true) << std::endl;
        std::cout << "Bitrate: " << f.audioProperties()->bitrate() << " bps" << std::endl;
    }

    return 0;
}

위 코드는 Opus 파일에서 제목, 아티스트, 앨범 및 비트레이트와 같은 메타데이터를 읽어옵니다.

Opus 파일에 메타데이터 쓰기

Opus 파일에 메타데이터를 쓰려면 다음과 같이 해야 합니다.

#include <taglib/fileref.h>
#include <taglib/opusfile.h>

int main() {
    TagLib::FileRef f("sample.opus");

    if (!f.isNull()) {
        TagLib::Opus::File file(f.file());
        file.tag()->setTitle("New Title");
        file.save();
    }

    return 0;
}

위 코드에서 “New Title”은 새로운 제목으로 대체될 값입니다.

결론

이제 Taglib을 사용하여 Opus 파일의 메타데이터를 읽고 쓰는 방법에 대해 알아보았습니다. 이를 통해 Opus 파일을 더 효과적으로 관리하고 활용할 수 있을 것입니다.

더 많은 정보는 Taglib 공식 문서를 참조하시기 바랍니다. Taglib 공식 문서