การแปลงเสียงเป็น AAC โดยใช้ ffmpeg


10

ฉันมีการตั้งค่าต่อไปนี้สำหรับ ffmpeg

ffmpeg version N-54790-g1816f55-syslint Copyright (c) 2000-2013 the FFmpeg developers
  built on Jul 17 2013 21:34:32 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-3)
  configuration: --prefix=/usr/local/cpffmpeg --enable-shared --enable-nonfree --enable-gpl --enable-pthreads --enable-libopencore-amrnb --enable-decoder=liba52 --enable-libopencore-amrwb --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --extra-cflags=-I/usr/local/cpffmpeg/include/ --extra-ldflags=-L/usr/local/cpffmpeg/lib --enable-version3 --extra-version=syslint
  libavutil      52. 40.100 / 52. 40.100
  libavcodec     55. 18.102 / 55. 18.102
  libavformat    55. 12.102 / 55. 12.102
  libavdevice    55.  3.100 / 55.  3.100
  libavfilter     3. 81.101 /  3. 81.101
  libswscale      2.  4.100 /  2.  4.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  3.100 / 52.  3.100

ฉันพยายามใช้ ffmpeg เพื่อแปลงไฟล์ m4a หรือ mp3 ของฉันเป็น

AAC, Low Complexity Profile (LC)

การดิ้นรนหาบรรทัดคำสั่งที่ใช้งานได้จริงสำหรับฉันเป็นไปได้ด้วยการตั้งค่า ffmpeg ของฉัน?

ขอบคุณ


สำเนาซ้ำของffmpeg ที่
user1503606

คำตอบ:


10

AAC-LC เป็นค่าเริ่มต้นสำหรับทุกการเข้ารหัส AAC ffmpegที่สนับสนุนโดย

ตัวอย่าง:

ffmpeg -i input -codec:a aac output.m4a

ดูFFmpeg Wiki: คู่มือการเข้ารหัส AACสำหรับรายละเอียดและตัวอย่างเพิ่มเติม


เจ๋งฉันไม่รู้เรื่องตัวเข้ารหัส Fraunhofer ฉันเดาว่าการทดสอบเสร็จสิ้นที่บิตเรตต่ำสุดที่ฉันจะไม่ใช้ แต่ให้ข้อมูลที่ดี!
Louis Waweru

2

หากต้องการเข้ารหัสรูปแบบใด ๆ ไปยัง AAC-LC ในคอนเทนเนอร์ ADTS (ไฟล์. aac) โดยใช้ตัวเข้ารหัส AAC ดั้งเดิมของ FFmpegs (ดีที่สุดรองจาก Fraunhofer's libfdk_aac ที่ไม่ดีที่สุดของ Fraunhof ตามhttps://trac.ffmpeg.org/wiki/Encode/AAC - ไม่รองรับ HE-AAC แต่อย่างใด) คุณต้องระบุ-strict experimental(หรือ-strict -2):

ffmpeg -i input.mp3 -strict experimental -c:a aac -b:a 128k output.aac

เมื่อแปลงเป็น. aac จากแหล่งใน m4a / mp4 คุณไม่จำเป็นต้องเข้ารหัสซ้ำอีกครั้ง:

ffmpeg -i input.m4a -c:a copy output.aac

หมายเหตุ : FFmpeg พยายามที่จะเดารูปแบบเอาต์พุตจากชื่อไฟล์เอาต์พุต หากคุณต้องการบังคับรูปแบบสำหรับ ADTS (ไฟล์. aac) ให้ใช้-f adts(เช่นเมื่อทำงานกับสตรีมแบบ piped แทนไฟล์):

cat input.wav | ffmpeg -i pipe:0 -c:a aac -c:b 128k -f adts pipe:1 ­> output.aac

1
คุณไม่จำเป็นต้องยกเว้นกรณีที่คุณกำลังใช้เก่า-strict experimental ffmpeg
llogan

@ LordNeckbeard ขอบคุณสำหรับการอัปเดต! นั่นหมายความว่าตัวเข้ารหัสเนทีฟมีครบกำหนดในระดับที่น่าพอใจ ...
Bigue Nique

2
ใช่ แต่มีงานที่วางแผนไว้มากกว่านี้ โปรดดูเพิ่มเติมที่ตัวเข้ารหัส FFmpeg AAC ดั้งเดิมตอนนี้เสถียร!
llogan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.