MP4 파일에서 AAC 오디오를 추출하는 "적절한"방법?


0

Linux (Kubuntu 16.04)를 사용하고 있으며 오디오 트랙이있는 .MP4 파일이 있습니다.이 파일은 추출하여 .AAC / .M4A 파일 및 태그로 저장하고 싶습니다.

자, 나는 다음을 사용하여 추출을 해왔습니다.

MP4Box -raw $track_index my_file.mp4

트랙 인덱스는 0, 1, 2 등이 될 수 있습니다. 다양한 미디어 플레이어에서 결과를 재생할 수 있기 때문에 효과가 있습니다.

내 파일을 본 사람이 나에게 말했다 :

"ftyp"필드가 파일 헤드에서 누락되어 MPEG 4 컨테이너로 식별됩니다. "mdat"필드도 없으며 MPEG 4 컨테이너 내부의 개별 데이터 청크를 나타냅니다.

이로 인해 특정 앱이 추출 된 파일로 작업하기가 어렵습니다. 특히, 앱에 태그를 지정하면 태그를 작성하지 않습니다.

올바르게 구조화되고 태그 지정 가능한 M4A / AAC 파일을 얻으려면 어떻게해야합니까? (자연스럽게 명령 줄 솔루션을 찾고 있습니다.)

답변:


1

'raw'를 사용하지 마십시오. '단일'을 사용하십시오. 그런 다음 확장자를 .m4a로 변경하십시오.

MP4Box 설명서에서 :

-single TrackID : extracts track in a new MP4 with a single track.

나는 임의의 MP4를 가지고이 두 가지 옵션을 사용하여 오디오를 추출했습니다. 그런 다음 미디어 정보를 사용하여 검사했습니다. 원시 옵션 출력은 파일 형식이 ADTS 인 반면 단일 옵션 출력은 MPEG-4입니다.

-raw는 태그와 같은 메타 데이터를 지원하지 않는 전송 스트림 파일을 생성하는 것으로 보입니다. 앱 Tagger를 사용하면 -raw 출력 파일도 표시되지 않지만 -single 출력을 열고 태그를 편집 할 수 있습니다.

https://gpac.wp.mines-telecom.fr/mp4box/mp4box-documentation/


+1이지만 전송 스트림 파일을 "일반"오디오 스트림 전용 MP4로 래핑하는 방법을 알고 있습니까?
einpoklum

전송 스트림이 그렇게 작동하지 않는다고 생각합니다. 그러나 -single은 원하는 파일 형식을 자동으로 만듭니다. 다시 인코딩되지 않습니다. 내가 수집 한 것에서, 당신이 제안하는 것은 단일 단계 프로세스를 거쳐 다단계 프로세스로 바꿀 것입니다. 다른 소프트웨어에서 명확하게 오디오 파일임을 알 수 있도록 확장명을 변경합니다.
Mockman

전송 스테 어 파일을 추출했고 더 이상 원본 MP4를 가지고 있지 않다고 가정했습니다.
einpoklum

아아… 조금 생각해 보자. 그러나 mp4box를 볼 때 새 컨테이너 파일을 만드는 옵션이 있다고 생각했습니다. 따라서 아마도이 오디오 스트림을 사용하여 새 컨테이너를 만드는 줄을 따라야 할 것입니다.
Mockman

이것을 시도해 보면 아마 'm4a'또는 'mp4'를 출력 파일 확장자로 사용할 수 있습니다…mp4box -add _inputfile_ _outputfile_
Mockman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.