Mp4 support one install, not in other?



  • Two different systems with Fedora 23 and Vivaldi 1.2 (vivaldi-stable-1.2.490.39-1.x86_64). The systems do not have identical packages, but both have ffmpeg from the RPM Fusion repos. I am specifically interested in support for SoundManager 2. Their site as a test on it which works in Vivaldi on one machine but, not the other. http://www.schillmania.com/projects/soundmanager2/ One machine loads the test, one throws an error. Checked the javascript console and didn't see any errors. Not sure which other logs to check. Initially I did not have chrome on the machine which failed to load SoundManager2. Thinking maybe it was searching/using a library provided by Chrome (an idea based on some of the older docs I read), I installed Google Chrome, removed Vivaldi, and reinstalled Vivald. This did not resolve the issue. Any advice for debugging or pointers as to how libffmpeg.so loads and determines what is available?


  • Moderator



  • Thank you for the links. I reviewed both of those pages before posting. The pages do not provide details about the underlying function or debugging assistance.

    I did not use either of those documented, yet SoundManager 2 functions as expected on one installation.


  • Moderator

    Oh, i misunderstod, i thought you have a libffmpeg.so problem (with MPEG audio) wich could be solved by herecuras vivaldi-ffmpeg-codecs.

    You need help for debuuging the webapp Soundmanager 2?



  • The symptom is SoundManager 2 does not work on one of my installations. The end goal is to get SoundManager 2 working, but I believe this is related to the state of ffmpeg or codecs on my system. Unfortunately, I am not sure where to start debugging or how to effectively determine the state of codecs available in Vivaldi.


  • Moderator

    You need first the correct libffmpeg.so for Vivaldi! to get all working.

    1. Read https://gist.github.com/ruario/bec42d156d30affef655
    2. Fetch the correct package vivaldi-ffmpeg-codecs-51.0.2704.65-1-i686.pkg or vivaldi-ffmpeg-codecs-51.0.2704.65-1-x86_64.pkg from http://repo.herecura.eu/pool/
    3. extract the libffmpeg.so from archive
    4. copy libffmpeg.so into /opt/vivaldi/lib/

    Fedora 23 works with this codec lib as described at https://gist.github.com/ruario/bec42d156d30affef655#gistcomment-1725734



  • Will do on the non-working system when I get home this evening. Even if that is successful, I am still curious why it functions on one of the installations which I did not update the libffmpeg.so.



  • The libffmpeg.so replacement suggested appears to support all of the options via HTML5 for SoundManager 2. This is great!

    I would still like to understand the why libffmepg.so did not initially work "out of the box" on one system and not the other.

    Both systems have the same (original) libffmpeg.so:
    $ file libffmpeg.so
    libffmpeg.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=98a398cd9b1ac8bccb1d0e89e83b64261c06b1b1, stripped
    $ sha1sum libffmpeg.so
    091693ca86564e2adbe415372a0a8b1d6f1c209b libffmpeg.so

    I believe it is dynamically loading some of the system level ffmpeg libraries, but would like to know which ones (and where) it attempts to dynamically load.

    There is mention of "Flash" to support codecs not supported by HTML5 wihen using the original libffmpeg.so, so could be something outside of libffmpeg.so which provides some flash support? Compare "original" working screenshot to "replacement" libffmepg.so screenshot.

    Or course, as I was moving libffmepg.so files around (replaced the original with fixed and switch back to the original), I am now seeing the same working behavior on both systems with the original libffmpeg.so. This is quite curious. Can anyone provide detail about how/if the original libffmpeg.so links to libraries on your system?
    Attachments:
    ,


  • Moderator

    I may explain (i hope i am correct)…
    The original Vivaldi libffmpeg.so (coming with install of Vivaldi) in lib folder does not include MP3/MP4 suppport, it has only free codecs lile WebM/VP9 and OGG.
    Vivaldi tries to load a libffmpeg.so from a installed chromium-codecs-ffmpeg-extra package (which has MP3/MP4 support). If your distrie does not provide such package, the playing of MP3 and MP4 will fail.
    The libffpmeg.so from Herecura vivaldi-ffmpeg-codecs-... package has MP3 and MP4 compiled in.

    Understandable? ;)



  • It does make sense. So Vivaldi looks in a specific location for another libffmpeg.so? Which locations does it check?


  • Moderator

    On ym Ubuntu the files stay at
    /usr/lib/chromium-browser/libs/libffmpeg.so (with MP3/MP4)
    /opt/vivaldi/lib/libffmpeg.so (without MP3/MP4)

    Vivaldi start script has the following code:

    # Find libffmpeg.so with additional codecs.
    CHR_CODECS_CH="/usr/share/doc/chromium-codecs-ffmpeg-extra/changelog.Debian.gz"
    if [ -r $CHR_CODECS_CH ]; then
      CHR_CODECS_VER=$(gzip -cd $CHR_CODECS_CH |
        sed -n '1s/chromium-browser (\(\([0-9]\+\.\)\{3\}\).*/\1/p')
      if [ "$CHR_CODECS_VER" = "51.0.2704." ] || [ "$CHR_CODECS_VER" = "50.0.2661." ] || [ "$CHR_CODECS_VER" = "49.0.2623." ]; then
        FFMPEG_LD_LIBRARY_PATH=":/usr/lib/chromium-browser/libs"
      fi
    fi
    # Set LD_LIBRARY_PATH to prefer our libs, excluding $HERE/lib/libffmpeg.so if
    # an alternative ffmpeg was found.
    if [[ -n "$LD_LIBRARY_PATH" ]]; then
      LD_LIBRARY_PATH="$HERE$FFMPEG_LD_LIBRARY_PATH:$HERE/lib:$LD_LIBRARY_PATH"
    else
      LD_LIBRARY_PATH="$HERE$FFMPEG_LD_LIBRARY_PATH:$HERE/lib"
    fi
    export LD_LIBRARY_PATH
    
    

    You see how it works.



  • I reviewed this portion as well as the rest of the startup script and determined my system does not execute that block (due to my system missing: /usr/share/doc/chromium-codecs-ffmpeg-extra/changelog.Debian.gz)

    Is it possible the default libffmpeg.so dynamically loads some system ffmpeg libs? Who would be the correct individual/group to ask?



  • I just noticed the flashplayer section of the startup script. On one system I had:
    /opt/google/chrome/PepperFlash/libpepflashplayer.so

    Looks like SoundManager 2 was using flash to play (which it mentioned, but i didn't think I Vivaldi had flash).

    Looking at the "ps" output:
    –ppapi-flash-path=/opt/google/chrome/PepperFlash/libpepflashplayer.so --ppapi-flash-version=21.0.0.242

    Thanks for the assistance. I will switch to the libffmpeg you recommended.


Log in to reply
 

Looks like your connection to Vivaldi Forum was lost, please wait while we try to reconnect.