The audio file cannot be open by the VLC player
Codec not supported VLC could not decode the format "mp4a" (MPEG AAC Audio)
I have the same issue with VLC player. However, on macOS, I can play them using Quicktime Player or the Finder after I append the ".mp4" file name to the file. So the audio is there, I think VLC is just missing the correct codec.
@areckkimo2 Which operating system and browser are you using? A issue that comes to mind is that with Windows and Internet Explorer you might have access to higher definition audio due to a higher DRM-Level. IIRC in this case the audio might also be encrypted.
See: https://help.netflix.com/en/node/110881
I had the same issue, for me the solution was changing platform - narr worked spoothly on Raspberry OS. I believe it will work on Ubuntu/Debian as well. There might be also VLC versions that will work. long version: on Windows with Edge browser the audio downloaded was xHE-ACC encoded. In order to decode it, you'd need fdk-acc codec - it's an open source, but patened software; due to licensing, it can't be distributed under GPL-licensed distros. As a result, for most of the linuxes, you can't have fdk codec in chromium, so Netflix send's audio in acceptable codec. Fdk is open source, so it should be doable to compile it from the source code on any platform. For example you should be able to compile ffmpeg There might also be some solutions that would make vlc work with fdk, either some vlc plugins or forks, somewhere on github.
If there is some information about the encoding of the stream, @IljaN it would be helpful to pass it somehow to the file. Also having some proper file extension would rock ;) Besides all of that, this project did the job for me, really cool @IljaN
Hey @Qatrach,
thanks for the detailed analysis with regards to xHE-AAC. I also went down this rabbit hole while working on #6 to understand the issue. Had to build ffmpeg from source to make ffprobe even recognize xHE-ACC but didn't continue further to make it playable on Linux, so many thanks for the detailed steps.
It seems that currently xHE-AAC is not well supported on non-apple platforms.
If there is some information about the encoding of the stream, @IljaN it would be helpful to pass it somehow to the file. Also having some proper file extension would rock ;)
Yes that would be possible as the format is probed before the download so the encoding could be included within the file-name.
Also having some proper file extension would rock ;)
Yes will do. AFAIR everything is in mp4 containers.
Thanks a lot for the feedback.
Heres the steps I took to compile on MacOS (M1) and it worked for me. I had to be explicit on specifying the input and output codecs or else conversion would fail.
I knew 7.1 should support it, but took me a while to figure it out anyways :P (https://ffmpeg.org/index.html#pr7.1)
# build from scratch
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
./configure --help | grep usac
brew install fdk-aac
./configure --enable-libfdk_aac --enable-nonfree
make -j$(sysctl -n hw.ncpu)
sudo make install
ffmpeg -codecs | grep libfdk_aac
# Convert a file
ffmpeg -c:a libfdk_aac -i input.m4a -c:a libfdk_aac -profile:a aac_low -b:a 128k output.m4a