FFMPEG : 정보 / 품질의 손실없이 m4a 파일을 mp3로 변환합니다. 자동 비트 레이트


44

m4a에서 mp3로 변환하려는 오디오 파일 (약 1000 개)이 있으므로 USB 포트가있는 CD 플레이어에서 재생할 수 있습니다.

나는 간단한 것을 시도했지만 ffmpeg -i FILE.m4a FILE.mp3비트 레이트를 매우 낮은 값으로 줄이는 것 같습니다.

마찬가지로 320k와 같은 일정한 비트 전송률을 사용하여 변환하고 싶지 않습니다. 변환하는 파일 중 일부는 320k m4a이고 일부는 96k m4a만큼 품질이 낮기 때문입니다.

320k를 강제하는 것은 의미가없는 것 같습니다. 일부 파일은 필요한 것보다 몇 배 더 커질 것입니다. 마찬가지로 모든 320k 파일을 96k보다 훨씬 낮은 파일로 변환하여 파괴하는 것은 의미가 없습니다. (현재 파일은 약 50k로 변환되고 있습니다.)

아무도 내가 어떻게 할 수 있는지 알고 있습니까? 내가 정말로하고 싶은 일은 ffmpeg에게 디렉토리의 모든 m4a 파일을 mp3로 변환하고 현재 가능한 최상의 오디오 품질을 유지하도록 지시하는 것입니다. (물론 손실 파일 형식에서 손실 파일 형식으로 변환하면 약간의 손실이있을 수 있습니다.)

당신의 도움을 주셔서 감사합니다. 이것이 가능하지 않은 경우 파일을 개별적으로 변환 할 때 필요한 품질을 감지 할 수있는 일종의 스크립트가 있습니까?

추신 : 저는 인텔 맥에서 일하고 있지만 우분투 상자도 가지고 있습니다.

답변:


51

VBR

-qscale:a옵션을 사용하여 ffmpegVBR (Variable Bitrate) MP3 출력을 생성 할 수 있습니다 . 에서 인코딩 VBR (가변 비트 레이트) MP3 오디오 :는 FFmpeg 위키 :

-qscale:a(또는 별칭 -q:a)으로 품질을 관리 하십시오 . 값은 인코더마다 다르므로 libmp3lame의 경우 범위는 0-9이며 값이 작을수록 품질이 높습니다. 0-3은 일반적으로 투명한 결과를 생성하고 4 (기본값)는 지각 가능한 투명도에 가깝고 6은 일반적으로 "허용 가능한"품질을 생성합니다. 옵션 -qscale:a-V독립형 lame 명령 행 인터페이스 도구 의 옵션 에 맵핑됩니다 .

허용 가능한 값을 확인하기 위해 실험해야합니다. 수소 오디오 : 권장 LAME 인코더 설정 도 참조하십시오 .

여러 파일 인코딩

Bash "for loop"를 사용하여 디렉토리의 모든 파일을 인코딩 할 수 있습니다.

$ mkdir newfiles
$ for f in *.m4a; do ffmpeg -i "$f" -codec:v copy -codec:a libmp3lame -q:a 2 newfiles/"${f%.m4a}.mp3"; done

가져 오기 ffmpeg

ffmpeg가능 하면 최신 빌드를 사용하는 것이 좋습니다 . OS X, Linux 및 Windows 용 빌드에 대한 링크 는 FFmpeg 다운로드 페이지를 참조하십시오 . FFmpeg 컴파일 지침을 따라도 됩니다.


1
고마워, 명령은 효과가 있었지만 내가 원하는 것을하고 있다고 생각하지 않습니다. 나는 -q : a 0을 설정했는데, 이것은 고품질 m4a (더 높은 vbr 속도로 ​​큰 파일을 생성 함)에 기대되는 것을 수행하지만 품질이 낮은 파일은 여전히 ​​vbr이 약 250-260 인 큰 파일로 변환되고 있다고 생각합니다. kb / s. m4a 형식의 약 96k 파일이 vbr 모드의 lame 인코더를 사용하여 유사한 비트 전송률로 변환 될 것으로 예상했습니다. vbr 인코딩 모드가 어떻게 작동하는지 이해하지 못했다고 가정합니다.
user3728501

19

FFmpeg 사용 (많은 GUI 버전도 있음)

  1. MP3 는 이미 중단되어 (2017 년) 더 이상 사용되지 않는 코덱입니다. 인터넷은 이미 AAC (보다 효율적이고 우수한 코덱) 로 전환했습니다 .

    ffmpeg -i filenameee.m4a -acodec copy output.aac
    
  2. 그러나 여전히 더 많은 장치에서 지원하기 때문에 MP3 를 사용하려는 경우 :

    ffmpeg -i filenameee.m4a -acodec libmp3lame -ab 256k output.mp3
    

4
질에 관한 문제이기 때문에 128 대신 256k로 변환하면 도움이 될 것입니다.
VessoVit

3

이것은 나를 위해 일했다 :

ffmpeg -i testing.m4v -b:a 192K -vn testing.mp3

1

기존 답변을 기본으로 사용하여 bash 스크립트를 작성했습니다. 패키지 avprobe에있는 것을 설치해야 libav-tools합니다. avprobe다음 명령으로 설치할 수 있습니다

sudo apt-get install libav-tools

참고 :이 스크립트를 실행하는 폴더를 백업하고 실행 하기 전에 수행중인 작업을 읽고 이해하기 위해 최선을 다하는 것이 좋습니다 .

나는 YMMV를 엄격히 테스트하지 않았습니다.

#!/bin/bash

mkdir "mp3s"
for f in *.m4a;
do
    bitrate=$(avprobe "${f}" 2> >(grep bitrate) | sed 's/^.*bitrate://g' | sed 's/[^0-9]*//g')
    bitrate="${bitrate}K"
    new_filename=$(echo "${f}" | sed 's/.m4a$/.mp3/g')
    ffmpeg -y -i "${f}" -acodec libmp3lame -ab "${bitrate}" "mp3s/${new_filename}"
done

0

48 KhZ에서 작업하고 입력 파일에서 최소 24 비트 (파일 편집기 i.ex.의 경우)를 사용 -q:a 0하면 큰 파일이 아니라 20kHz를 재생할 수 있습니다. 그러나 노이즈를 줄이지 않으면 저 음질 오디오 디더링 또는 코 감소 오디오 편집기를 통해 고주파수 (hiss)로부터 변환으로 생성 된 후 재생산 된 후 데이터 파일을들을 수없는 HF이지만 고가의 노이즈로 사용합니다.

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