프로그래밍 방식으로 mp3를 itunes에서 재생할 수 있는 aac/m4a 파일로 변환하려면 어떻게 해야 합니까?

StackOverflow https://stackoverflow.com/questions/70096

  •  09-06-2019
  •  | 
  •  

문제

나는 프로그래밍 방식으로 또는 운없이 명령줄을 통해 mp3를 aac로 변환하는 방법을 찾고 있었습니다.이상적으로는 mp3를 aac로 변환하는 Rails 앱에서 호출할 수 있는 코드 조각이 있어야 합니다.ffmpeg와 libfaac를 설치했고 다음 명령을 사용하여 aac 파일을 만들 수 있었습니다.

ffmpeg -i test.mp3 -acodec libfaac -ab 163840 dest.aac

출력 파일의 이름을 dest.m4a로 변경하면 iTunes에서 재생되지 않습니다.

감사해요!

도움이 되었습니까?

해결책

FFmpeg 컴파일한 경우 AAC 인코딩 기능을 제공합니다.Windows를 사용하는 경우 다음에서 전체 바이너리를 가져올 수 있습니다. 여기

ffmpeg -i source.mp3 -acodec libfaac -ab 128k dest.aac

Ruby에서 이것을 어떻게 호출할지 잘 모르겠습니다.

또한 비트 전송률을 적절하게 설정하십시오.

다른 팁

내가 아는 대로 명령줄 인터페이스를 통해 사용할 수 있는 무료 AAC 인코더는 세 개뿐입니다.

  1. FAAC(LPGL)는 솔직히 꽤 나쁩니다(동일한 비트 전송률에서 품질이 LAME보다 훨씬 나쁠 것입니다).하지만 더 높은 비트 전송률(>>128kbps)을 원하고 품질상의 이유가 아닌 호환성을 위해 AAC가 필요한 경우에는 괜찮습니다.FAAC를 사용하는 가장 일반적인 방법은 libfaac로 ffmpeg를 사용하는 것입니다.

  2. Nero AAC는 Windows 및 Linux에서 무료로 사용할 수 있지만 비상업적인 용도로만 사용할 수 있는 명령줄 인코더입니다(해당하는 비공개 소스임).

  3. ffmpeg의 AAC 인코더는 아직 개발 중이며 기술적으로는 작동한다고 생각하지만 아직 초기 단계이기 때문에 전혀 안정적이거나 좋지 않거나 빠르지도 않습니다.내가 아는 한 트렁크에서도 사용할 수 없습니다.

(편집하다:iTunes에도 그런 기능이 있을 것 같은데, 사용 조건이 Nero와 비슷할 것 같습니다.AFAIK의 품질은 비슷합니다.)

나는 이 파티에 늦었다는 것을 알고 있지만 이 질문의 전제에 의문을 제기하고 있습니다.MP3를 "iTunes 재생 가능" 형식으로 변환하려는 이유는 무엇입니까?iTunes는 이미 MP3를 기본적으로 처리합니다.

불필요한 변환을 수행하고 있는 것 같습니다. 손실이 많은 형식에서 다른 형식으로 변환하므로 그 과정에서 품질이 일부 손실됩니다.

Rails 애플리케이션을 실행 중인 Linux/window 시스템에 변환 앱을 설치한 후 Ruby에서 "system()" 명령을 사용하여 시스템에서 변환 애플리케이션을 호출합니다.system("command_here");

ffmpeg 0.5 이상에서 ffmpeg -i source.mp3 target.m4a를 사용합니다.

더 나은 결과를 위해 메타데이터를 전송하고 기본 비트 전송률을 재정의하려면 ffmpeg 적용

ffmpeg -i "input.mp3" -ab 256k -map_meta_data input.mp3:output.m4a 출력.m4a

ipod는 mp3를 잘 재생하므로 변환하지 않는 것이 가장 좋습니다. (그런 답변이 있다는 것을 알고 있지만 낮은 지위에서는 투표가 허용되지 않습니다.)

나는 mplayer(ffmpeg를 사용한다고 생각합니다...)를 사용하여 행운을 누렸고 형편없었습니다.내가 스크립트로 정리한 지점은 다음과 같습니다.

#!/bin/sh

TARGET=$1

BASE=`basename "${TARGET}"`
echo TARGET: "${TARGET}"
echo BASE:   "${BASE}" .m4a

# Warning! Race condition vulnerability here! Should use a mktemp
# variant or something...
mkfifo encode
mplayer -quiet -ao pcm -aofile encode "${TARGET}" &
lame --silent encode "${BASE}".mp3
rm encode

보안 문제로 죄송합니다. 어느 날 기차에서 이걸 쳤어요...

내 mplayer와 lame은 어디에서 왔나요? 꼬마

실제로 구문은 ffmpeg -i input.mp3 -c:a aac -strict -2 -b:a 256k output.m4a;"올바른" 비트 전송률을 에뮬레이션하는 경우 더 정확합니다.참조:링크 컴파일 계획을 위해.(rpmfusion 패키지도 잘 작동합니다.

구성:--prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share /man --arch=x86_64 --optflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fExceptionions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc -switches -m64 -mtune=generic' --enable-bzlib --disable-crystalhd --enable-frei0r --enable-gnutls --enable-libass --enable-libcdio --enable-libcelt --enable-libdc1394 - -disable-indev=jack --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-openal --enable-libopencv --enable-libopenjpeg --enable-libopus --enable-libpulse --enable- libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab --enable- avfilter --enable-avresample --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 - -활성화-런타임-CpuDetect

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top