FLAC(또는 Free Lossless Audio Codec)은 오디오 데이터를 압축하여 저장하는 무손실 압축 형식으로 널리 사용됩니다. Taglib은 C++로 작성된 라이브러리로, 오디오 파일의 메타데이터를 읽고 쓸 수 있습니다. 이 포스트에서는 Taglib을 사용하여 FLAC 파일의 메타데이터를 처리하는 방법을 살펴보겠습니다.
Taglib 설치하기
먼저, Taglib을 시스템에 설치해야 합니다. Ubuntu 기반 시스템의 경우 다음 명령을 사용하여 설치할 수 있습니다.
sudo apt-get install libtag1-dev
다른 운영 체제의 경우 Taglib 공식 웹사이트에서 소스 코드를 다운로드하여 빌드하거나 패키지 관리자를 통해 설치할 수 있습니다.
FLAC 파일의 메타데이터 읽기
다음은 Taglib을 사용하여 FLAC 파일의 메타데이터를 읽는 예제 코드입니다. 이 예제에서는 파일에서 아티스트와 제목을 출력합니다.
#include <taglib/flacfile.h>
#include <taglib/tag.h>
#include <iostream>
int main() {
TagLib::FLAC::File file("example.flac");
if(!file.isValid()) {
std::cerr << "Invalid file." << std::endl;
return 1;
}
TagLib::Tag *tag = file.tag();
std::cout << "Artist: " << tag->artist().toCString(true) << std::endl;
std::cout << "Title: " << tag->title().toCString(true) << std::endl;
return 0;
}
위의 코드에서는 flacfile.h
헤더를 포함하여 FLAC 파일을 열고, artist
와 title
을 출력합니다.
FLAC 파일의 메타데이터 쓰기
Taglib을 사용하여 FLAC 파일의 메타데이터를 쓰는 방법도 간단합니다. 아래의 예제 코드는 새로운 아티스트와 제목을 설정하고 FLAC 파일에 쓰는 방법을 보여줍니다.
#include <taglib/flacfile.h>
#include <taglib/tag.h>
int main() {
TagLib::FLAC::File file("example.flac");
if(!file.isValid()) {
std::cerr << "Invalid file." << std::endl;
return 1;
}
TagLib::Tag *tag = file.tag();
tag->setArtist("New Artist");
tag->setTitle("New Title");
file.save();
return 0;
}
위의 코드에서는 setArtist
와 setTitle
을 사용하여 메타데이터를 설정하고, save
를 사용하여 변경사항을 파일에 저장합니다.
이제 여러분은 Taglib을 사용하여 C++에서 FLAC 파일의 메타데이터를 읽고 쓸 수 있는 방법을 알게 되었습니다. Taglib은 MP3, Ogg 등 다양한 오디오 형식을 지원하므로 유용하게 활용할 수 있습니다.