1. .ogg not playing with PlaySoundFile (client limitation ?)

    Hello!
    As the title suggests, certain .ogg audio files are not being played in-game (wotlk) with the use of PlaySoundFile API. If I downgrade the bitrate of the files, they do play, while if I up the bitrate of previously working .ogg, those then stop working.

    @Warmane Staff, is this a known issue / limitation of the WotLK client? I can provide sound files for debugging, if needed.

    Thank you and KR

  2. Yes, this is a known issue/limitation.

    I noticed the same with certain compression methods(consistently) and variable bitrate(handful of times).
    Every time I had this issue, I just re-encoded it with different parameters and it worked fine.
    Now that you bring it up, I am curious about the actual reason.
    If you can share your files, I can offer to dig around a bit.
    Edited: June 21, 2021

  3. Here are some testing files: https://drive.google.com/drive/folde...Hg?usp=sharing
    - Original files that do play on retail, but not here - folder labelled: Originals (not working);
    - Original files that are able to be played here - folder labelled: Working originals;
    - Fixed files from the not working originals folder that were converted to lower bitrates using this website: https://audio.online-convert.com/convert-to-ogg

  4. In your case, all working files are encoded with
    > Lavc59.1.100 libvorbis
    and all broken files are encoded with
    > Lavf55.33.100

    Lavc is the actual codec (video/audio) and Lavf is a container.
    I tested files with different versions of Lavc/Lavf each and the result is the same.

    I can recommend using an offline encoding tool like ffmpeg. Just using the default options halved the file sizes.

  5. Thanks Adulph for checking. Those files were just what comes bundled with DBM voice pack, but your info about the encoding is great. May I ask which software you used to check? Since Voice Pack has a list of 278 .ogg files, so there's more in there I need to see

  6. ffmpeg, which comes with ffprobe. Sometimes it's already in the metadata.
    It's worth learning ffmpeg, there are GUI wrapper for that program, but if you have troubles with those 278 .ogg files, you can send them to me and I will mass encode them to a working version.

    After checking for files, I found an mp3 file that was encoded with LAME3.100.n., but used Lavf57.71.100 for that. I am out of my depth to figure out the reason of certain files not working, but I can re-encode them to make them work.

  7. Thanks, but I should be able to convert them myself. But clarify this for me if you don't mind: using that online converter tool, why would the encoding change only after a certain bitrate? On some files I had to incrementally downgrade bitrate on the converter until I found the proper bitrate for WoW to play a specific file (the bitrate option ofc varied on a per file basis)

    This also does not invalidate the fact that not all .ogg play on the client. And quite frankly, it looks like a bug to me... at least I couldn't find one bit of information about this on blizzard posts.

  8. I played around with different bitrates.
    When taking your broken files end re-encoding them with higher/same/lower bitrates (both based on working and broken bitrate files, 50-300), they all started to work.
    "incrementally downgrad[ing] bitrate" didn't change anything for me.

    But I now found a way to consistently break files.
    When I chose 400+ bitrate, the encoder gave these error messages/warnings:
    [libvorbis @ 0x56107cfa2b00] Queue input is backward in time
    [ogg @ 0x56107cf90d00] Non-monotonous DTS in output stream 0:0; previous: 70642, current: 69765; changing to 70642. This may result in incorrect timestamps in the output file.
    The encoder finished and the resulting file was playable by normal music players. But it didn't play in-game.

    Then I used normal bitrate values again, but changed the timestamp method to deliberately cause this warning again. Every time the warning popped up, it was broken in-game. I assume that broken timestamps are at least one error source. I can't verify if your broken files have broken timestamps.

    The website is most likely using ffmpeg, but just hides those warnings and encodes on a much lower compression/quality setting to reduce their CPU costs.
    If you're not into terminals, you can use a GUI wrapper likes this: https://handbrake.fr/ . It has batch/mass encode functionalities as well.

    tl;dr: I assume it's broken timestamps that modern/normal music players can handle, but WoW can't.

    Edit: Regarding your last paragraph: I remember that WoW wrote a lot of their stuff themselves and they had some bugs with PlaySoundFile in tbc because of that.
    Edited: June 21, 2021

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •