Overview
Hello. firstly, thank you for PyAV.
I am working with for air masters for a client that are Quicktime, containing Pro Res 422 HQ, Time Code and up to 16 channels of discrete mono uncompressed LPCM audio tracks. I am re-muxing and thus making a new container which has some (but not all) packets from the master.
My new container has all of my audio tracks, but introspecting these tracks in both Quicktime Player and in MediaInfo indicate all but the 1st audio track is disabled by default.
I believe this is related to FFMPEG's disposition default behavior - which I dont believe PyAV exposes. See FFMPEGs docs and search for disposition
Expected behavior
Audio tracks added other than the first are explicitly enabled unless specified with a different language grouping.
ie:
6 discrete mono tracks marked as english (perhaps Chanel layout for 5.1) - all enabled
6 discrete stereo tracks marked with different languages, all but the first disabled.
6 discrete tracks manually marked with disposition information - enabled as per disposition requests.
Actual behavior
Audio tracks after the first appear to be disabled with no way to intercede. This may be an FFMPEG issue, its unclear to me if this has been patched, See : https://trac.ffmpeg.org/ticket/2626 & https://trac.ffmpeg.org/ticket/3622
Build report:
Im not using a build, but a pip install in a Google Colab instance. What do you need here? I cant run the command listed sans error.
Investigation
Load multi track audio files into various application that allow for intropspecting tracks - such as Quicktime, MediaInfo, etc.
Reproduction
Add multiple discrete audio to an output container with PyAV and introspect using the above tools.
Versions
- OS: Google Colab - Linux d0ce16e0210c 4.19.112+ #1 SMP Thu Jul 23 08:00:38 PDT 2020 x86_64 x86_64 x86_64 GNU/Linux
PyAV v8.0.2
git origin: git@github.com:PyAV-Org/PyAV
git commit: v8.0.2
library configuration: --disable-doc --disable-static --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-shared --enable-version3 --enable-zlib --prefix=/tmp/vendor
library license: GPL version 3 or later
libavcodec 58. 54.100
libavdevice 58. 8.100
libavfilter 7. 57.100
libavformat 58. 29.100
libavutil 56. 31.100
libswresample 3. 5.100
libswscale 5. 5.100
python3: can't open file 'setup.py': [Errno 2] No such file or directory
ffmpeg version 4.3-2~18.04.york0 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
configuration: --prefix=/usr --extra-version='2~18.04.york0' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.100
Research
I have done the following:
Additional context
{{ Add any other context about the problem here. }}
Overview
Hello. firstly, thank you for PyAV.
I am working with for air masters for a client that are Quicktime, containing Pro Res 422 HQ, Time Code and up to 16 channels of discrete mono uncompressed LPCM audio tracks. I am re-muxing and thus making a new container which has some (but not all) packets from the master.
My new container has all of my audio tracks, but introspecting these tracks in both Quicktime Player and in MediaInfo indicate all but the 1st audio track is disabled by default.
I believe this is related to FFMPEG's disposition default behavior - which I dont believe PyAV exposes. See FFMPEGs docs and search for disposition
Expected behavior
Audio tracks added other than the first are explicitly enabled unless specified with a different language grouping.
ie:
6 discrete mono tracks marked as english (perhaps Chanel layout for 5.1) - all enabled
6 discrete stereo tracks marked with different languages, all but the first disabled.
6 discrete tracks manually marked with disposition information - enabled as per disposition requests.
Actual behavior
Audio tracks after the first appear to be disabled with no way to intercede. This may be an FFMPEG issue, its unclear to me if this has been patched, See : https://trac.ffmpeg.org/ticket/2626 & https://trac.ffmpeg.org/ticket/3622
Build report:
Investigation
Load multi track audio files into various application that allow for intropspecting tracks - such as Quicktime, MediaInfo, etc.
Reproduction
Add multiple discrete audio to an output container with PyAV and introspect using the above tools.
Versions
Research
I have done the following:
Additional context
{{ Add any other context about the problem here. }}