ffmpeg를 사용하여 다시 인코딩하지 않고 AAC 파일에 메타 데이터를 추가하는 방법은 무엇입니까?


13

비디오 파일에서 오디오 스트림 만 추출하기 위해 ffmpeg를 사용하고 있습니다.

ffmpeg -i video.mp4 -vn -acodec copy audio.aac

메타 데이터가없는 깨끗한 오디오 파일이 생성됩니다.

메타 데이터를 추가하기 위해 ffmpeg에는 명령 행 옵션이 있습니다.

ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.aac

이것은 오류없이 실행되지만 ffprobe로 출력 파일을 검사하면 메타 데이터 태그가 전혀 없습니다.

출력 컨테이너가 mp4로 변경되면 메타 데이터를 설정하고 출력 파일에 표시 할 수 있습니다.

ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.mp4

여기 흥미로운 부분이 있습니다. Banshee를 사용하여 기존 .aac 파일의 메타 데이터를 편집 한 다음 ffmpeg를 사용하여 파일을 동일한 방식으로 처리하면 원본 메타 데이터가 새 .aac 파일에 성공적으로 복사됩니다.

ffmpeg -i metadata.aac -vn -acodec copy audio.aac

그러나 메타 데이터를 변경해도 아무런 효과가 없습니다.

ffmpeg -i metadata.aac -vn -acodec copy -metadata title="My Title" audio.aac

따라서 .aac 컨테이너는 메타 데이터를 보유 할 수 있고 ffmpeg는 입력에서 출력으로이를 복사 할 수 있지만 복사 코덱을 사용할 때는 변경할 수 없습니다.

누구든지 다시 인코딩하지 않고 aac 컨테이너의 메타 데이터를 변경하기 위해 ffmpeg를 얻는 방법을 알고 있습니까?

또는 파일을 처리 한 후 메타 데이터를 설정하는 데 사용할 수있는 다른 일반 도구가 있습니까?

많은 감사합니다. 크리스

답변:


12

목표는 재 인코딩없이 비디오 파일에서 오디오 전용 파일을 생성하고 미디어 플레이어가 인식 할 수있는 메타 데이터를 도입하는 것입니다. 환경은 데비안 GNU / 리눅스입니다.

답을 찾는 데 올바른 길을 걸어 주신 @bootload에게 감사드립니다.

ffmpeg는 메타 데이터 태그를 .AAC 출력 파일에 추가하는 것을 지원하지 않는 것으로 보이지만 여기에는 두 가지 가능한 해결 방법이 있습니다.

  1. 명령 행 유틸리티 id3 및 id3v2 (표준 리포지토리에서 사용 가능)는 id3 태그를 .aac 오디오 파일에 적용 할 수 있습니다. 노틸러스는 v1 및 v2 태그 스타일을 모두 인식 했으므로 어느 쪽이든 작동해야합니다. Banshee 미디어 플레이어에서도 동일한 태그를 인식했습니다.
id3v2 -t "My Title" audio.aac
  1. ffmpeg는 MP4 컨테이너에 메타 데이터를 추가 할 수 있지만 노틸러스의 .mp4 확장자는 비디오 파일로 나타납니다. Apple Inc.는 MP4 컨테이너에 비표준 확장을 사용하여 비디오 파일 (.m4v)과 오디오 파일 (.m4a)을 구분합니다. 이 확장은 데비안에서 노틸러스와 ffmpeg에 의해 인식됩니다. 그래서,
ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.m4a

Nautilus가 인식하는 오디오 전용 파일을 생성하며 ffmpeg는 컨테이너에 메타 데이터를 안전하게 추가 할 수 있습니다.


3

의도 한 하드웨어는 무엇입니까? Apple iP * 기기 용입니까? 그렇다면 http://atomicparsley.sourceforge.net/을 시도 하십시오. 그렇지 않으면 "UTF-8 인코딩 INI" mex / demux 메소드를 사용하여 http://ffmpeg.org/ffmpeg.html#Examples 를 시도 하십시오 . 메타 데이터를 utf8 파일로 추출하고 수정 및 다시 삽입하십시오.


환경은 데비안 GNU / 리눅스입니다.
Chris C.

ffmpeg 문서는 메타 데이터 muxer / demuxer 사용 방법에 대해서는 명확하지 않지만 문서 링크는 결과 파일 형식을 보여줍니다. 이를 수행하는 방법에 대한 명령 행 예제를 제공 할 수 있습니까? 감사.
Chris C.

@ChrisC는 좋지 않습니다. aac 및 ffmpeg 사양을 넘어서지 않고 이것을 확인하려면 ffmpeg가 존중 하는 메타 데이터 가 여기에 나열되어 있습니다 ~ wiki.multimedia.cx/index.php?title=FFmpeg_Metadata#Basic_Usage 및 acc는 지원되지 않습니다. 다른 형식으로 cli를 사용하면 예를 들어 'ffmpeg -i track05.wav -metadata title = "Track # 5"-metadata author = "Unknown Artist"-acodec alac -y track05.m4a 패턴따릅니다 . 일반화 된 패턴은 ffmpeg -i <SOURCE> -metadata key = "value"<SOURCE>입니다. 이것은 당신이 따르는 과정입니다 :(
bootload

매우 구체적으로 설명하겠습니다. 인코딩하려는 메타 데이터의 형식은 무엇입니까? 우리는 ID3를 말하고 있습니까? 마지막으로 어떤 형식으로 작업 할 예정입니까?
부트로드

AAC가 무엇을 지원하는지 알아보기 위해 둘러 보았습니다. 공식적인 형식은 없지만 데비안 ID3V1과 ID3V2 모두에서 작동하는 것 같습니다. Banshee는 편집기를 사용할 때 ID3V2 태그를 사용하는 것으로 보입니다.
Chris C.

1

MP4Box ( "gpac"패키지의 일부)는 원본 데이터를 변경하지 않고 AAC 파일을 MP4 컨테이너로 묶습니다. 그런 다음 거의 모든 태깅 소프트웨어를 사용하여 메타 데이터를 추가 할 수 있습니다.

MP4Box -add old.aac new.mp4
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.