สำหรับการทดสอบฉันต้องการแปลงไฟล์ MP3 และ WAV ที่ฉันต้องเป็น Opus ขั้นตอนในการทำเช่นนี้คืออะไร
สำหรับการทดสอบฉันต้องการแปลงไฟล์ MP3 และ WAV ที่ฉันต้องเป็น Opus ขั้นตอนในการทำเช่นนี้คืออะไร
คำตอบ:
ตามค่าเริ่มต้นตัวแปลงเสียงที่จัดส่งมาพร้อมกับopus-toolsสามารถแปลงเสียงในรูปแบบ raw, wave หรือ AIFF ไวยากรณ์ขั้นต่ำสุดใช้การตั้งค่าเริ่มต้น:
opusenc input.wav output.opus
เราอาจต้องการเพิ่มบิตเรตที่ดีกว่าเป็นค่าเริ่มต้น 96 kbps พร้อมตัวเลือก--bitrate N.nnn
(สำหรับตัวเลือกทั้งหมดศึกษา manpage สำหรับ opusenc)
เพื่อแปลง mp3 "ในทันที" เช่นโดยไม่ต้องสร้างไฟล์ชั่วคราวเราสามารถไพพ์เอาต์พุตจาก avconv ไปยัง opusenc ดังนี้:
avconv -i input.mp3 -f wav - | opusenc --bitrate 256 - output.opus
อูบุนตู 14.04 และ Debian 8 เรือที่มีรุ่นที่ 9 ของในที่เก็บของพวกเขาและก็มีการสนับสนุนในตัวสำหรับบทประพันธ์ผ่านแพคเกจlibav-tools
libopus0
ด้วยเวอร์ชัน 9 libav-tools
และlibopus0
ติดตั้งคุณสามารถทำได้โดยง่ายเช่น:
avconv -i file.mp3 -map 0:a -codec:a opus -b:a 100k -vbr on file.opus
-i file.mp3
ตั้งค่าไฟล์อินพุต-map 0:a
จะเลือกเสียงลำธารทั้งหมด ( a
) 0
จากแฟ้มใส่ อ่านเพิ่มเติมเกี่ยว-map
กับhttps://libav.org/avconv.html#Advanced-options-codec:a opus
เลือก opus encoder สำหรับออดิโอสตรีม ( a
) อ่านเพิ่มเติมเกี่ยวกับ-codec
บนhttps://libav.org/avconv.html#Main-options-b:a 100k
ตั้งค่าบิตเรตของเสียงเป็น 100 กิโลบิต / วินาที อ่านเพิ่มเติมเกี่ยว-b
กับhttps://libav.org/avconv.html#Codec-AVOptions-vbr on
เปิดบิตเรตตัวแปร นี่คือตัวเลือกเฉพาะสำหรับ libopus นี่คือตัวเลือกทั้งหมดสำหรับ libopus:
$ avconv -h full | grep opus -A 11
avconv version 9.11-6:9.11-3+b2, Copyright (c) 2000-2013 the Libav developers
built on Apr 6 2014 17:45:45 with gcc 4.8 (Debian 4.8.2-16)
libopus AVOptions:
-application <int> E..A. Intended application type
voip E..A. Favor improved speech intelligibility
audio E..A. Favor faithfulness to the input
lowdelay E..A. Restrict to only the lowest delay modes
-frame_duration <float> E..A. Duration of a frame in milliseconds
-packet_loss <int> E..A. Expected packet loss percentage
-vbr <int> E..A. Variable bit rate mode
off E..A. Use constant bit rate
on E..A. Use variable bit rate
constrained E..A. Use constrained VBR
file.opus
ตั้งค่าไฟล์ที่ส่งออก
ใช้สตรีมที่สองของอินพุตแรก ( -map 0:1
) ซึ่งเป็นสตรีมเสียง เข้ารหัสด้วย libopus ที่ 100 kbit / s พร้อมบิตเรตตัวแปรใน:
$ avconv -stats -i linuxactionshowep309-432p.mp4 -map 0:1 -c libopus -b 100k linuxactionshowep309-432p-audio-only.opus
avconv version 9.11-6:9.11-3+b2, Copyright (c) 2000-2013 the Libav developers
built on Apr 6 2014 17:45:45 with gcc 4.8 (Debian 4.8.2-16)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'linuxactionshowep309-432p.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf55.33.100
Duration: 01:14:48.45, start: 0.042667, bitrate: 466 kb/s
Stream #0.0(und): Video: h264 (High), yuv420p, 768x432 [PAR 1:1 DAR 16:9], 330 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc
Stream #0.1(und): Audio: aac, 48000 Hz, stereo, fltp, 128 kb/s
Output #0, ogg, to 'linuxactionshowep309-432p-audio-only.opus':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf54.20.3
Stream #0.0(und): Audio: libopus, 48000 Hz, stereo, flt, 100 kb/s
Stream mapping:
Stream #0:1 -> #0:0 (aac -> libopus)
Press ctrl-c to stop encoding
size= 54360kB time=4488.47 bitrate= 99.2kbits/s
video:0kB audio:53875kB global headers:0kB muxing overhead 0.900602%
เมื่อmediainfo
ติดตั้งแพ็คเกจ:
$ mediainfo linuxactionshowep309-432p-audio-only.opus
General
Complete name : linuxactionshowep309-432p-audio-only.opus
Format : OGG
File size : 53.1 MiB
Duration : 1h 14mn
Overall bit rate : 99.2 Kbps
Writing application : Lavf54.20.3
major_brand : isom
minor_version : 512
compatible_brands : isomiso2avc1mp41
Audio
ID : 2104437746 (0x7D6F2BF2)
Format : Opus
Duration : 1h 14mn
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz
Compression mode : Lossy
Writing library : Lavf54.20.3
-map 0:a
บ้าง (และอาจมีรายละเอียดทั้งบรรทัด?)
Opus เมื่อ 12.04
เมื่อวันที่ 12.04 (แม่นยำ) แต่มีปัญหาการพึ่งพากับการติดตั้งตัวแปลงสัญญาณบทประพันธ์และเครื่องมือเพื่อให้ฉันได้พบไกลโดยวิธีการแก้ปัญหาที่ดีที่สุดคือหนึ่งที่ได้กลายเป็นใช้ได้มากเมื่อเร็ว ๆ นี้: รวบรวม encoder เสียงบทประพันธ์และถอดรหัสตามที่ระบุไว้ที่นี่ , และสร้างffmpeg
ด้วยการสนับสนุนบทประพันธ์โดยการเพิ่ม--enable-opus
ตัวเลือกการกำหนดค่าของffmpeg
(ตามที่ระบุไว้ในคู่มือการรวบรวม )
ฉันรู้ว่าffmpeg
เลิกใช้แล้วใน Ubuntu Libav
แต่การรวบรวมเป็นวิธีที่ดีในการรับ opus encoder / ตัวถอดรหัสที่รวมอยู่ในffmpeg
ตัวมันเอง จากนั้นคุณสามารถใช้มันเพื่อการแปลงไฟล์ (คนแรกที่จะ WAV) .opus
และจากนั้นไป เอกสารที่ติดตั้งกับ libopus และ ffmpeg จะเปิดเผยตัวเลือกทั้งหมดที่สามารถใช้ในการแปลงไฟล์
เมื่อทำการแปลงไฟล์ด้วยffmpeg
หลังจากการคอมไพล์คุณต้องระบุ-acodec libopus
หรือffmpeg
ไม่ใช้ตัวแปลงสัญญาณ opus:
ffmpeg -i pc.wav -ar 48000 -ac 2 -acodec libopus -ab 256k man.opus
จากนั้นคุณสามารถทดสอบไฟล์ที่สร้างด้วย
ffplay man.opus
เคล็ดลับการรวบรวม
ไม่จำเป็นต้องทำซ้ำคำแนะนำทั้งหมดที่นี่ แต่ควรสังเกตสิ่งหนึ่งหรือสองอย่าง:
คุณควรติดตั้งการอ้างอิงตามที่ระบุไว้ในรายการก่อน (ฉันไม่yasm
อยู่ในรายการ: ดูจุดที่สองของฉัน):
sudo apt-get -y install autoconf build-essential checkinstall git libass-dev libfaac-dev libgpac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev librtmp-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libx11-dev libxext-dev libxfixes-dev pkg-config texi2html zlib1g-dev
มีประเด็นหนึ่งที่ควรจะชี้ให้เห็น: การสร้างคอมไพล์ดูเหมือนจะต้องการyasm-1.2
และไม่พร้อมใช้งานดังนั้นคุณต้องรวบรวมแหล่งจากเว็บไซต์ทางการแต่มันง่าย เพียงแค่เอารุ่นใด ๆ ที่ติดตั้งyasm
แล้วแกะเก็บที่ดาวน์โหลดcd
ไปยังโฟลเดอร์ที่วิ่งแล้ว./configure && make
sudo checkinstall
หากบิลด์อื่น ๆ ต้องการเวอร์ชันก่อนหน้าคุณสามารถลบเวอร์ชันนี้และติดตั้งเวอร์ชันที่เก็บได้
มันเป็นสิ่งจำเป็นที่จะลบใด ๆ ที่มีอยู่libav
, ffmpeg
, x264
, libvpx
หรือfdk-aac
แพคเกจก่อนที่คุณจะเริ่มต้นรวบรวม
มันเป็นสิ่งสำคัญที่คุณรวบรวมและติดตั้งx264
, fdk-aac
, libvpx
และopus
ก่อนที่คุณจะสร้างffmpeg
เป็นห้องสมุดเหล่านั้นจะถูกนำมาใช้ในการสร้าง
อย่าลืมเพิ่ม--enable-opus
ไปยังตัวเลือกการกำหนดค่าเมื่อคุณเรียกใช้การffmpeg
รวบรวม
เวอร์ชั่นของ opus ที่คอมไพล์คือ 1.1alpha ดังนั้นคุณอาจจำเป็นต้องคอมไพล์ไลบรารี opus และ ffmpeg อีกครั้งในอนาคตอีกครั้งเมื่อมีเวอร์ชันใหม่ออกมา
คุณสามารถใช้ffplay
เพื่อเล่นไฟล์บทประพันธ์ที่คุณสร้างขึ้น
นั่นเป็นวิธีที่ฉันทำ:
$ opusenc - บิตเรต 320 - สูงสุดล่าช้า 10 "18 - Soul Asylum - Runaway Train (เวอร์ชั่นอัลบั้ม) .flac" "18 - Soul Asylum - Runaway Train (เวอร์ชั่นอัลบั้ม) .opus"
แก้ไข:
สำหรับ Audiophiles:
$ opusenc - bitrate 510 - max-delay 10 "18 - Soul Asylum - Runaway Train (เวอร์ชั่นอัลบั้ม) .flac" "18 - Soul Asylum - Runaway Train (เวอร์ชั่นอัลบั้ม) .opus"
ไม่จำเป็นต้องระบุ--maxdelay 10
ตัวเลือกเพราะopusenc
ทำตามค่าเริ่มต้น
เอาต์พุตคอนโซลสำหรับการแปลงไฟล์นี้ ( --bitrate 320
):
Encoding using libopus 1.1.2 (audio)
-----------------------------------------------------
Input: 44.1kHz 2 channels
Output: 2 channels (2 coupled)
20ms packets, 320kbit/sec VBR
Preskip: 356
Encoding complete
-----------------------------------------------------
Encoded: 4 minutes and 22.4 seconds
Runtime: 8 seconds
(32.8x realtime)
Wrote: 10955530 bytes, 13120 packets, 13124 pages
Bitrate: 317.691kbit/s (without overhead)
Instant rates: 1.2kbit/s to 510.4kbit/s
(3 to 1276 bytes per packet)
Overhead: 4.89% (container+metadata)
มันเร็วมาก! น้อยกว่า 8 วินาทีด้วยความซับซ้อน 10 (ความซับซ้อนของการเข้ารหัสคอมพิวเตอร์ (0-10, ค่าเริ่มต้น: 10) ศูนย์ให้การเข้ารหัสที่เร็วที่สุด แต่คุณภาพต่ำลงในขณะที่ 10 ให้คุณภาพสูงสุด แต่การเข้ารหัสช้าลง) และเวลาหน่วงสูงสุด 10ms ( คอนเทนเนอร์ล่าช้าสูงสุดในหน่วยมิลลิวินาที (0-1000 ค่าเริ่มต้น: 1,000)) ดังนั้นหากคุณข้ามเวลาในเพลงเอฟเฟกต์การตัดจะมีระยะเวลา 10ms ดังนั้นจึงไม่สามารถรับได้ (ลอง 1,000 และได้ยินความแตกต่างของเวลาข้ามกับ เมาส์) บิตเรตคือ VBR ตามค่าเริ่มต้น 320kbps เหมาะสำหรับฉันดังนั้นเป็นตัวเลือกเล่นกับตัวเลขนี้:
--bitrate N.nnn
=> บิตเรตเป้าหมายเป็น kbit / วินาที (6-256 ต่อช่อง)
อย่างไรก็ตามการเข้ารหัสจาก MP3 ถึง OPUS ไม่ใช่ความคิดที่ดีมันจะไม่ส่งเสียงที่ดีกว่าอัลกอริธึมการบีบอัดของพวกเขานั้นแตกต่างกันมาก แต่จาก FLAC หรือ WAV หรือLossless Audio Formatอื่น ๆนั่นเป็นอีกเรื่องหนึ่ง
หมายเหตุ: ในการเข้ารหัสไฟล์อื่นเพียงกดลูกศรขึ้นในเทอร์มินัลเดียวกันเพื่อเรียกคำสั่งสุดท้ายและเปลี่ยนชื่อของไฟล์อินพุตและไฟล์เอาต์พุต
หากคุณกำลังมองหา GUI ffmpeg / avconv บางทีTraGtorอาจเป็นสิ่งที่คุณต้องการ
นอกจากนี้คุณยังสามารถตรวจสอบความแตกต่างระหว่าง spectogram Lossless และ Lossy รูปแบบที่บิตเรตที่สูงด้วยSpekหรือกล้า
Error parsing input file: Hardvapour remix-.mp3
ว่าฉันใช้ 16.04
opus-tools
Audex
เปิด Audex และเพิ่มโปรไฟล์ใหม่ที่ชื่อว่า Opus เพิ่มรูปแบบคำสั่ง
opusenc $i --comment="TRACKNUMBER="$trackno"" --artist "$artist" --album "$title" --title "$ttitle" --date "$date" --picture "$cover" $o
และคำต่อท้าย opus