Quando si desidera ascoltare un sacco di podcast, lezioni e libri audio per esempio, e volete portare con voi come gran parte di essa come si può, quindi il codec audio Opus è qualcosa che potrebbe interessarti. Io uso raramente questo termine ma qui può essere applicato: I risultati mi hanno stregato. È sorprendente quanto audio potete imballare su un dispositivo mobile con i limiti di capacità severa.
Ho appena convertito questo:
none 162 Files mp3, 44100 Hz, mono, s16p, 129 kb/s Total Length: 6d 14h 47min 49 Total Size: 9.05 GB
Da 9.05 GB
a 555 MB
e sono contento con i risultati.
Si prega di considerare che questa è una conversione da mp3 come sua fonte. Sì, è vero, sono andato da 128k
mp3 a 6k
opus e una settimana di audio è ridotto a metà un gigabyte, ed è stato convertito da una fonte sfavorevole. Anche se questa è la mia impostazione personale hardcore, nella mia ricerca ho scoperto che quasi non può andare male con 16k
non importa quanto male la fonte.
Cosa è Opus?
Nelle loro stesse parole: > Opus is a totally open, royalty-free, highly versatile audio codec. Opus is unmatched for interactive speech and music transmission over the Internet, but is also intended for storage and streaming applications. It is standardized by the Internet Engineering Task Force (IETF) as RFC 6716 which incorporated technology from Skype’s SILK codec and Xiph.Org’s CELT codec.
Opus è un codec audio totalmente aperto, a titolo gratuito, altamente versatile. Opus è ineguagliata per la trasmissione di voce interattiva e musica su Internet, ma è anche destinato a deposito e applicazioni di streaming. È standardizzato da Internet Engineering Task Force (IETF) come RFC 6716 che incorporato tecnologia di codec di SILK di Skype e il codec CELT di Xiph.Org.
https://www.opus-codec.orghttps://en.wikipedia.org/wiki/Opus_%28audio_format%29
Confronto grafico tra MP3, AAC e Opus
Lunghezza | non compresso | Codec | Bitrate | compresso | Fattore di |
---|---|---|---|---|---|
24 h | 14.88 GB | MP3 | 128k | 1382.4 | 11 |
24 h | 14.88 GB | AAC HE | 64k | 691.2 MB | 22 |
24 h | 14.88 GB | Opus | 16k | 172.8 MB | 86 |
24 h | 14.88 GB | Opus | 6k | 64.8 MB | 233 |
7 d | 104 GB | MP3 | 128k | 9.7 GB | 11 |
7 d | 104 GB | AAC HE | 64k | 4.8 GB | 22 |
7 d | 104 GB | Opus | 16k | 1.2 GB | 86 |
7 d | 104 GB | Opus | 6k | 0.5 GB | 233 |
30 d | 446 GB | MP3 | 128k | 41.5 GB | 11 |
30 d | 446 GB | AAC HE | 64k | 20.7 GB | 22 |
30 d | 446 GB | Opus | 16k | 5.2 GB | 86 |
30 d | 446 GB | Opus | 6k | 1.9 GB | 233 |
365 d | 5.4 TB | MP3 | 128k | 504.6 GB | 11 |
365 d | 5.4 TB | AAC HE | 64k | 252.3 GB | 22 |
365 d | 5.4 TB | Opus | 16k | 63.1 GB | 86 |
365 d | 5.4 TB | Opus | 6k | 23.6 GB | 233 |
Calcolatrice bitrate
Bitrate | kbit/s |
Lunghezza | s |
Dimensione del file | MB |
Si prega di notare che Opus utilizza VBR (può essere impostato per CBR, che cosa consiglia di non dopo aver visto i risultati). Pertanto la dimensione del file finale chiudere, ma varia.
Il comando di conversione
Si può quasi fare niente di sbagliato con 16k
. Nella mia esperienza, anche pesantemente compressa fonti che suona male portare a una qualità quasi buona come origine.
bash ffmpeg -i <input.file> -acodec libopus -b:a 16k <output.opus>
Quando i file di origine sono di qualità superiore è ancora ottenere risultati impressionanti con 6k
, che è l'impostazione minima assoluta offerto da Opus, ma si può sicuramente sentire l'impatto di che questa compressione massiccia porta con sé.
Io personalmente uso la compressione di bitrate 6k
anche se la fonte è di minore qualità, perché io preferisco avere più in uno spazio più piccolo che avere meno con qualità superiore. Questa è la decisione che si deve fare per se stessi.
Questa è l'impostazione hardcore che io uso:
bash ffmpeg -i <input.file> -acodec libopus -b:a 6k -application voip output.opus
Opzioni di conversione
Per impostazione predefinita, le opzioni per libopus sono solide. Ai fini della riduzione delle dimensioni estreme abbassiamo il bitrate. Quindi ottimizziamo per riconoscimento vocale con l'opzione applicazione
nel nostro caso particolare.
application (N.A.) Set intended application type. Valid options are listed below:
- voip -> Favor improved speech intelligibility.
- audio -> Favor faithfulness to the input (the default).
- lowdelay -> Restrict to only the lowest delay modes.
Gestire più file in simultanea.
bash for f in *; do ffmpeg -n -i "$f" -acodec libopus -b:a 16k -application voip "encoded_"${f}".opus"; done
Questo comando consente di scorrere tutti i file nella cartella di lavoro e li converte nel formato opus. I file di rendering vengono memorizzati nella stessa cartella avendo lo stesso nome come i file originali con un prefisso encoded_
. Il codec di Opus opera solo singolo thread.
Velocizzare le cose con multithreading
Opus non supporta multithreading e le codifiche sono assegnati a un singolo core di CPU ma è possibile parallelizzare il processo di codifica con i seguenti comandi bash.
bash bash -c 'ffmpeg_pids=(); for f in *; do ffmpeg -n -i "$f" -acodec libopus -b:a 16k -application voip encoded_"${f}".opus & ffmpeg_pids+=("$!"); done; wait "${ffmpeg_pids[@]}"'
bash # -P8 indicates Number of threads (of 4 core i7 in this case) find . -name "*.mp3" -print0 | xargs -0 -P8 -n1 -I {} ffmpeg -i {} -acodec libopus {}.opus
Il primo comando convertirà tutti i file nella cartella di lavoro contemporaneamente. E il secondo comando converte tanti quanti threads come sono assegnati, ma non di più. Il secondo comando dovrebbe essere meglio quando sono presenti molti file nella cartella di lavoro.
O utilizzare gnu parallel.
Opus Media Player per iOS
Almeno VLC può farlo.
Finale note
Lo so, molte persone non saranno d'accordo con me sull'impostazione 6k
. In questo caso si prega di utilizzare semplicemente 16k
.
Configurazione e strumenti utilizzati:
- FFmpeg (3.2.2) con libopus e libfdk-aac abilitati