Skip to main content
Topic: Native Opus decoder committed to FFmpeg/libav (Read 4738 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Native Opus decoder committed to FFmpeg/libav

A native Opus decoder is now available in FFmpeg/libav [git]:
https://git.videolan.org/?p=ffmpeg.git;a=co...770fdf5f57de222
https://git.libav.org/?p=libav.git;a=commit...770fdf5f57de222

Some applications might start using the native decoder (knowingly or unknowingly). So, I decided to test both decoders (FFmpeg and libopus) to see how they perform.

Two samples where used in the test:
Code: [Select]
Filename    Length    Info
t96.opus    13824.1    music content encoded with default VBR 96kbps [CELT]
t16.opus    7869.97    voice content encoded with VBR 16kbps [SILK]


Two devices used in the test:
Code: [Select]
[Laptop]
    CPU: Intel(R) Core(TM)2 Duo CPU P7350 @ 2.00GHz
    OS:  ArchLinux [x86_64]

[Tablet]
    CPU: ARMv7 Processor rev 9 (v7l)
         Tegra 3, 1700MHz
         swp half thumb fastmult vfp edsp neon vfpv3 tls
    OS:  ArchLinux ARM [armv7h] chroot (Native env: Android/CM11)



Laptop/X86_64 Results:

Code: [Select]
[t96.opus]
Decoder    Time      Speed
FFmpeg     ~114      ~121.26x
libopus    ~108.5    ~127.41x

[t16.opus]
Decoder    Time      Speed
FFmpeg     ~37.75    ~208.47x
libopus    ~38.25    ~205.75x


Tablet/ARMv7l Results:

Code: [Select]
[t96.opus]
Decoder     Time      Speed
FFmpeg      ~333      ~41.51x
libopus     ~385.5    ~35.86x
libopus*    ~296.5    ~46.62x

[t16.opus]
Decoder     Time      Speed
FFmpeg      ~128      ~61.48x
libopus     ~139.5    ~56.41x
libopus*    ~78       ~100.89x

* Built with --enable-fixed-point

Native Opus decoder committed to FFmpeg/libav

Reply #1
Nice  I really hope that this speeds up Opus integration into Android audio player's which are know to based on ffmpeg (Poweramp, DeadBeef).
I'll go and post this on DeadBeef's Google+
WavPack -b4x4hc
Opus --cvbr --bitrate 256 --framesize 5

Native Opus decoder committed to FFmpeg/libav

Reply #2
DeadBeef is not using ffmpeg as it was told by me, instead it uses it's own plugins. Sorry for that.
WavPack -b4x4hc
Opus --cvbr --bitrate 256 --framesize 5

Native Opus decoder committed to FFmpeg/libav

Reply #3
There's an ffmpeg plugin, but it's old (last I checked anyway).

Native Opus decoder committed to FFmpeg/libav

Reply #4
Deadbeef has an ffmpeg plugin, but versions from 0.11 weren't supported for several releases.  Should be supported again in latest release.  ffmpeg versions are complicated but 2.0 upwards is supported, versions up to 0.10 also work, and anything in between might work.

Native Opus decoder committed to FFmpeg/libav

Reply #5
Hello, how I can include libopus in Android ffmpeg library? I know the --enable-libopus switch but the rest....  I've built normal FFmpeg for Android before, thats no problem tho.

Native Opus decoder committed to FFmpeg/libav

Reply #6
Do you have libopus on your system?  I don't know if you need the source but you definitely need libopus-dev or the equivalent so that ffmpeg has headers to compile against.

 
SimplePortal 1.0.0 RC1 © 2008-2020