Opus codec ile ses nasıl kodlanır?


30

Opus ses kodeği, sesi sıkıştırmak için şimdiye kadarki en iyi şey gibi görünüyor. Son zamanlarda en yeni ffmpeg ve VLC oynatıcılarında desteklendi. Ancak, medyanın gerçekte nasıl kodlanacağına dair bulabileceğim hiçbir belge yok. Birisi lütfen beni, özellikle ffmpeg bayrakları ve kullanım özellikleri ile birlikte, söz konusu belgelere yönlendirebilir mi? Çok fazla yer kaplayan sesli kitaplarım var ve Opus onları tutmak için mükemmel biçime benziyor.


1
İşletim sisteminizden bahsetmediniz.
lgagan

Yanıtlar:


39
ffmpeg -i <input> -c:a libopus -b:a bitrate <output>

Bit hızı, -b:a 96K96 kBit / s gibi bir şekilde verilebilir .

Ffmpeg dokümantasyon libopus için seçenekler ve açıklamaları bir listesi vardır. Burada -vbrseçenekleri veya farklı ayarları yapabilirsiniz -compression_level.

Ffmpeg ile derlediğinizden emin olun --enable-libopus!


Bu harika! Ffmpeg ile nasıl kodlanacağını çözdüm ama -vbr ve --compression_level bayraklarını bilmiyordum. Bu tam olarak aradığım şeydi!
MrDrMcCoy

6
Bu bana yardımcı oldu. NB, vbr onve compression_level 10varsayılandır ve muhtemelen atlanabilir. ffmpeg.org/ffmpeg-codecs.html#Option-Mapping
Joshua Huber

1
Aslında, bunlar varsayılan değerlerdir ve çoğu durumda değiştirilmeleri gerekmez. Ayrıca, bit hızının bit / sn cinsinden olduğunu unutmayın, normal kb / sn cinsinden değil. Varsayılan bit hızı 96000'dir (96 kbits / s), ki bu (tabii ki tartışmalı) iyi bir değerdir. Özetlemek için örnek komut:ffmpeg -i input.flac -acodec libopus -b:a 128000 output.opus
Gras Double

İşte 'application' parametresinin nasıl kullanılacağı -application voip. Yeni bir ffmpeg kullanıcısı olarak doğru sözdizimini bulmak için biraz uğraştım.
tuxayo

15
  1. Opus-tools indir

  2. kodlama:
    opusenc --bitrate 64 What_A_Feeling.wav What_A_Feeling_64.opus

  3. Kod çözme: (herhangi bir medya oynatıcısında oynamak için, medya oynatıcınız henüz opus özelliğini desteklemiyorsa kullanışlıdır):
    opusdec What_A_Feeling_64.opus What_A_Feeling_opus64.wav

(What_A_Feeling bir şarkı adıdır)

opusencKendi başına çalıştırırken görüntülenen ayrıntılı seçenekler :

Usage: opusenc [options] input_file output_file.opus

Encodes input_file using Opus.
It can read the WAV, AIFF, FLAC, Ogg/FLAC, or raw files.

General options:
 -h, --help         This help
 -V, --version      Version information
 --quiet            Quiet mode

input_file can be:
  filename.wav      file
  -                 stdin

output_file can be:
  filename.opus     compressed file
  -                 stdout

Encoding options:
 --bitrate n.nnn    Target bitrate in kbit/sec (6-256/channel)
 --vbr              Use variable bitrate encoding (default)
 --cvbr             Use constrained variable bitrate encoding
 --hard-cbr         Use hard constant bitrate encoding
 --comp n           Encoding complexity (0-10, default: 10 (slowest))
 --framesize n      Maximum frame size in milliseconds
                      (2.5, 5, 10, 20, 40, 60, default: 20)
 --expect-loss      Percentage packet loss to expect (default: 0)
 --downmix-mono     Downmix to mono
 --downmix-stereo   Downmix to stereo (if >2 channels)
 --max-delay n      Maximum container delay in milliseconds
                      (0-1000, default: 1000)

Diagnostic options:
 --serial n         Forces a specific stream serial number
 --save-range file  Saves check values for every frame to a file
 --set-ctl-int x=y  Pass the encoder control x with value y (advanced)
                      Preface with s: to direct the ctl to multistream s
                      This may be used multiple times

Metadata options:
 --comment          Add the given string as an extra comment
                      This may be used multiple times
 --artist           Author of this track
 --title            Title for this track
 --album            Album or collection this track belongs to
 --date             Date for this track
 --genre            Genre for this track
 --picture          Album art for this track
                      More than one --picture option can be specified.
                      Either a FILENAME for the picture file or a more
                      complete SPECIFICATION form can be used. The
                      SPECIFICATION is a string whose parts are
                      separated by | (pipe) characters. Some parts may
                      be left empty to invoke default values. A
                      FILENAME is just shorthand for "||||FILENAME".
                      The format of SPECIFICATION is

                      [TYPE]|[MIME-TYPE]|[DESCRIPTION]|[WIDTHxHEIGHT
                      xDEPTH[/COLORS]]|FILENAME

                      TYPE is an optional number from one of:
                      0: Other
                      1: 32x32 pixel 'file icon' (PNG only)
                      2: Other file icon
                      3: Cover (front)
                      4: Cover (back)
                      5: Leaflet page
                      6: Media (e.g., label side of a CD)
                      7: Lead artist/lead performer/soloist
                      8: Artist/performer
                      9: Conductor
                      10: Band/Orchestra
                      11: Composer
                      12: Lyricist/text writer
                      13: Recording location
                      14: During recording
                      15: During performance
                      16: Movie/video screen capture
                      17: A bright colored fish
                      18: Illustration
                      19: Band/artist logotype
                      20: Publisher/studio logotype

                      The default is 3 (front cover). There may only be
                      one picture each of type 1 and 2 in a file.

                      MIME-TYPE is optional. If left blank, it will be
                      detected from the file. For best compatibility
                      with players, use pictures with a MIME-TYPE of
                      image/jpeg or image/png. The MIME-TYPE can also
                      be --> to mean that FILENAME is actually a URL to
                      an image, though this use is discouraged. The
                      file at the URL will not be fetched. The URL
                      itself is stored in the metadata.

                      DESCRIPTION is optional. The default is an empty
                      string.

                      The next part specifies the resolution and color
                      information. If the MIME-TYPE is image/jpeg,
                      image/png, or image/gif, you can usually leave
                      this empty and they can be detected from the
                      file. Otherwise, you must specify the width in
                      pixels, height in pixels, and color depth in
                      bits-per-pixel. If the image has indexed colors
                      you should also specify the number of colors
                      used. If possible, these are checked against the
                      file for accuracy.

                      FILENAME is the path to the picture file to be
                      imported, or the URL if the MIME-TYPE is -->.
 --padding n        Extra bytes to reserve for metadata (default: 512)
 --discard-comments Don't keep metadata when transcoding
 --discard-pictures Don't keep pictures when transcoding

Input options:
 --raw              Raw input
 --raw-bits n       Set bits/sample for raw input (default: 16)
 --raw-rate n       Set sampling rate for raw input (default: 48000)
 --raw-chan n       Set number of channels for raw input (default: 2)
 --raw-endianness n 1 for bigendian, 0 for little (defaults to 0)
 --ignorelength     Always ignore the datalength in Wave headers

Teşekkürler, ama biraz daha detaylı bir şeyler umuyordum. Değişken bit hızı seçenekleri var mı? Ses akışını optimize etmek için başka hangi bayraklardan geçebilirim?
MrDrMcCoy

1
@nakedhitman Bu --vbrseçenek varsayılandır. Opusenc için man sayfasına bakın. Ayrıca ffmpeg ile kodlayabilirsiniz, ancak libopus--enable-libopus yüklendikten sonra derlenmesi gerekir .
Aralık'ta

Bir fikir edinmek için (toplu dönüştürme için değil), bunun gibi bir çevrimiçi sürüm yararlı olabilir. Bir planın bütün bir koleksiyonu dönüştürmesi durumunda opus-tools, seçilen kodlama aracının iyi performans gösterip göstermediğini opusinfo (ayrıca bunun bir parçası ) olarak söyleyebilir.
Rainer Rillke 16:17

3

DOS / Windows Komutundaki en iyi Opus Codec komutları:

Lib 1.3 için en küçük dosya boyutu (bant kalitesi):

Opusenc a.wav a.opus --bitrate 24 --framesize 40 --discard-comments --discard-pictures

Olacaksın:

a- 24kbits'te hala süper küçük boyutta 16kHz (32kHz stereo) sonik çıkışa sahip. Daha küçük ve Sonic çıkışları 11kHz’e düşecek

b- Çerçeve boyutunu artırın (kalitede algılanabilir bir kayıp olmadan, bir kaç veri bitinden tasarruf edin (yaklaşık% 6).

c- Gereksiz TAG bilgilerini atın ve yalnızca dosya boyutunu büyütecek resimleri örtün.

Lib 1.3 için, akış (CD kalitesine yakın), '24' yerine '--bitrate 52' kullanın.

1.2'de varsayılan değer 48kbit'tir, ancak 1.3'te 52 kullanarak, 'çerçeve boyutu' 40'a ayarlanmışken dosya boyutunuz eşittir, ancak duyulabilir daha az sayıda eserler vardır.

Frameize 40'lı 52 kbit, büyüklüğün 1 / 3'ünden daha az olan, kalite olarak 160 kbit MP3'e eşittir; 1.2’deki 48kbit, 128kbit MP3’e eşittir veya yalnızca 2.5 kat daha küçük boyuttadır.

Neredeyse aynı kalite için, 80 ila 96kbit arasında ihtiyacınız olacak. Sesimi mümkün olduğu kadar küçük yapmak istediğim için bunu neredeyse hiç kullanmıyorum.

96kbit'in üzerinde, yalnızca düzenleme için iyidir ve orijinal ile Opus kodlanmış dosya arasındaki farkı sesli olarak duyamazsınız.

Olduğu söyleniyor, henüz her şeyin Linux'ta nasıl çalıştığını bilmiyorum.


Ben linux ve pencereler hem Şunu çalışırken bir hata var: Unrecognized option '-framesize'. Error splitting the argument list: Option not found. ffmpeg sürümü 4.0.2
sukhmel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.