#2626 closed enhancement (invalid)
possibility to create "disabled" tracks in MP4/MOV container missing
| Reported by: | julian | Owned by: | |
|---|---|---|---|
| Priority: | wish | Component: | avformat |
| Version: | git-master | Keywords: | mov mkv |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | no | |
| Analyzed by developer: | no |
Description
hello
i need to create an MP4 file with an "disabled" audio track for playback on the AppleTV. it seems MP4 and MOV containers have the option to toggle whether tracks are enabled or disabled.
i've searched the manpage and googled to no avail, it seems ffmpeg is currently missing this capability. only thing i found is someone else looking for this too ( http://stackoverflow.com/questions/14409194/how-to-disable-non-1st-audio-streams-tracks-in-ffmpeg-for-mp4-files ).
please add the option to specify which tracks ( -map ) should be enabled or disabled when creating MP4 files.
currently i have to post process the files created by ffmpeg using MP4Box ( http://blog.jdknight.me/2011/05/handbrake-playstation-3-and-51-surround.html ).
thanks in advance for considering to implement this (or pointing me to the documentation if it really is already possible).
Change History (16)
comment:1 by , 13 years ago
| Keywords: | mov mkv added |
|---|---|
| Priority: | normal → wish |
comment:2 by , 13 years ago
comment:3 by , 13 years ago
i'm not seeing the second audio track being "disabled", i have to post process the files in MP4Box
comment:4 by , 13 years ago
Please provide your failing ffmpeg command line (the one that produces the output file that you have to post process) together with the complete, uncut console output to make this a valid ticket and to allow developers to reproduce the problem.
comment:5 by , 13 years ago
you are right, 1.2.1 disables a second audio track by default, but v1.0 (which i did use previously) does not - there must have been a recent change here.
i'm not sure in which version the change occurred, and it doesn't seem to be documented here: https://ffmpeg.org/ffmpeg.html
is there any way to control this behavior to specify which audio tracks should be en/disabled? if not, i'd like to see this added ;)
comment:6 by , 13 years ago
Please always test current git head before opening tickets, see http://ffmpeg.org/bugreports.html
If you are interested in this issue, please provide a failing command line including the complete, uncut console output and explain the incorrect behaviour.
follow-up: 8 comment:7 by , 13 years ago
please read my comment again, there is no failing command line (anymore). i'm happy that recent ffmpeg already disables the second audio track.
however there are still two issues here (and still no failing command line):
- the current behavior is not documented at all, and the change wasn't even documented in the changelog
- there is no way to control the behavior. what about users that DON'T want the second audio track to be disabled?
comment:8 by , 13 years ago
| Resolution: | → invalid |
|---|---|
| Status: | new → closed |
Replying to julian:
please read my comment again, there is no failing command line (anymore). i'm happy that recent ffmpeg already disables the second audio track.
Thank you for testing!
however there are still two issues here (and still no failing command line):
- the current behavior is not documented at all, and the change wasn't even documented in the changelog
This was a user-reported bug, bug fixes generally do not make it into the Changelog
- there is no way to control the behavior. what about users that DON'T want the second audio track to be disabled?
Please feel free to contribute to http://thread.gmane.org/gmane.comp.video.ffmpeg.user/46316
I don't think my main question was answered yet.
comment:9 by , 13 years ago
2.1 creates the second audio track as enabled again (and again without option to 'disable' it) so i'd like to have this bug-report re-opened
comment:10 by , 13 years ago
https://dl.dropboxusercontent.com/u/7221986/bla.aac
https://dl.dropboxusercontent.com/u/7221986/bla.mkv
ffmpeg -i bla.mkv -i bla.aac -map 0:0 -map 1:0 -map 0:1 -acodec copy -vcodec copy bla.mp4
with 1.2.4 this produces a MP4 with the second (surround) audio track being disabled, with 2.1 its enabled
comment:12 by , 12 years ago
Sorry for forgetting about this issue.
A bisect will hopefully not be necessary but a failing command line (a command line that does not work as expected) together with complete, uncut console output is needed: I am unable to produce an output mov file where the second audio track is enabled.
follow-up: 14 comment:13 by , 12 years ago
provided in comment 10 but i'll write it up again
- download
https://dl.dropboxusercontent.com/u/7221986/bla.aac
https://dl.dropboxusercontent.com/u/7221986/bla.mkv
- ffmpeg-1.2.1 -i bla.mkv -i bla.aac -map 0:0 -map 1:0 -map 0:1 -acodec copy -vcodec copy bla-old.mp4
- ffmpeg-2.2.1 -i bla.mkv -i bla.aac -map 0:0 -map 1:0 -map 0:1 -acodec copy -vcodec copy bla-new.mp4
- open bla-old.mp4, the second audio track is disabled as it should be. open bla-new.mp4, the second audio track is enabled
complete output
$ ./ffmpeg-2.2.1 -i bla.mkv -i bla.aac -map 0:0 -map 1:0 -map 0:1 -acodec copy -vcodec copy bla-new.mp4
ffmpeg version 2.2.1-tessus Copyright (c) 2000-2014 the FFmpeg developers
built on Apr 10 2014 05:10:42 with llvm-gcc 4.2.1 (LLVM build 2336.1.00)
configuration: --prefix=/Users/tessus/data/ext/ffmpeg/sw --as=yasm --extra-version=tessus --disable-shared --enable-static --disable-ffplay --enable-gpl --enable-pthreads --enable-postproc --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libx265 --enable-libxvid --enable-libspeex --enable-bzlib --enable-zlib --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libxavs --enable-version3 --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvpx --enable-libgsm --enable-libopus --enable-libmodplug --enable-fontconfig --enable-libfreetype --enable-libass --enable-libbluray --enable-filters --disable-indev=qtkit --enable-runtime-cpudetect
libavutil 52. 66.100 / 52. 66.100
libavcodec 55. 52.102 / 55. 52.102
libavformat 55. 33.100 / 55. 33.100
libavdevice 55. 10.100 / 55. 10.100
libavfilter 4. 2.100 / 4. 2.100
libswscale 2. 5.102 / 2. 5.102
libswresample 0. 18.100 / 0. 18.100
libpostproc 52. 3.100 / 52. 3.100
Input #0, matroska,webm, from 'bla.mkv':
Metadata:
ENCODER : Lavf55.19.104
Duration: 00:00:13.89, start: 0.042000, bitrate: 3975 kb/s
Stream #0:0(eng): Video: h264 (High), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 2k tbc (default)
Stream #0:1(eng): Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s (default)
Stream #0:2: Subtitle: subrip (default)
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'bla.aac':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isom
creation_time : 1983-09-23 01:07:26
Duration: 00:00:12.86, start: 0.044000, bitrate: 153 kb/s
Stream #1:0(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 150 kb/s (default)
Metadata:
creation_time : 1983-09-23 01:07:26
File 'bla-new.mp4' already exists. Overwrite ? [y/N] y
[mp4 @ 0x103804800] track 2: codec frame size is not set
Output #0, mp4, to 'bla-new.mp4':
Metadata:
encoder : Lavf55.33.100
Stream #0:0(eng): Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 23.98 fps, 16k tbn, 1k tbc (default)
Stream #0:1(eng): Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, stereo, 150 kb/s (default)
Metadata:
creation_time : 1983-09-23 01:07:26
Stream #0:2(eng): Audio: ac3 ([165][0][0][0] / 0x00A5), 48000 Hz, 5.1(side), 384 kb/s (default)
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #1:0 -> #0:1 (copy)
Stream #0:1 -> #0:2 (copy)
Press [q] to stop, [?] for help
[mp4 @ 0x103804800] Non-monotonous DTS in output stream 0:0; previous: 4672, current: 4672; changing to 4673. This may result in incorrect timestamps in the output file.
frame= 310 fps=0.0 q=-1.0 Lsize= 6986kB time=00:00:12.92 bitrate=4427.0kbits/s
video:6130kB audio:840kB subtitle:0 data:0 global headers:0kB muxing overhead 0.234052%
$ ./ffmpeg-1.2.1 -i bla.mkv -i bla.aac -map 0:0 -map 1:0 -map 0:1 -acodec copy -vcodec copy bla-old.mp4
ffmpeg version 1.2.1-tessus Copyright (c) 2000-2013 the FFmpeg developers
built on May 9 2013 21:58:14 with llvm-gcc 4.2.1 (LLVM build 2336.1.00)
configuration: --prefix=/Users/tessus/data/ext/ffmpeg/sw --as=yasm --extra-version=tessus --disable-shared --enable-static --disable-ffplay --enable-gpl --enable-pthreads --enable-postproc --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-libspeex --enable-bzlib --enable-zlib --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libxavs --enable-version3 --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvpx --enable-libgsm --enable-libopus --enable-fontconfig --enable-libfreetype --enable-libass --enable-filters --enable-runtime-cpudetect
libavutil 52. 18.100 / 52. 18.100
libavcodec 54. 92.100 / 54. 92.100
libavformat 54. 63.104 / 54. 63.104
libavdevice 54. 3.103 / 54. 3.103
libavfilter 3. 42.103 / 3. 42.103
libswscale 2. 2.100 / 2. 2.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
Input #0, matroska,webm, from 'bla.mkv':
Metadata:
ENCODER : Lavf55.19.104
Duration: 00:00:13.89, start: 0.000000, bitrate: 3975 kb/s
Stream #0:0(eng): Video: h264 (High), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 2k tbc (default)
Stream #0:1(eng): Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s (default)
Stream #0:2: Subtitle: subrip (default)
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'bla.aac':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isom
creation_time : 1983-09-23 01:07:26
Duration: 00:00:12.86, start: 0.044000, bitrate: 153 kb/s
Stream #1:0(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 150 kb/s
Metadata:
creation_time : 1983-09-23 01:07:26
File 'bla-old.mp4' already exists. Overwrite ? [y/N] y
track 2: codec frame size is not set
Output #0, mp4, to 'bla-old.mp4':
Metadata:
encoder : Lavf54.63.104
Stream #0:0(eng): Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 23.98 fps, 16k tbn, 1k tbc (default)
Stream #0:1(eng): Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, stereo, 150 kb/s
Metadata:
creation_time : 1983-09-23 01:07:26
Stream #0:2(eng): Audio: ac3 ([165][0][0][0] / 0x00A5), 48000 Hz, 5.1(side), 384 kb/s (default)
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #1:0 -> #0:1 (copy)
Stream #0:1 -> #0:2 (copy)
Press [q] to stop, [?] for help
[mp4 @ 0x102122200] st:0 PTS: 7360 DTS: 5344 < 5345 invalid, clipping
frame= 310 fps=0.0 q=-1.0 Lsize= 6986kB time=00:00:12.92 bitrate=4426.9kbits/s
video:6130kB audio:840kB subtitle:0 global headers:0kB muxing overhead 0.233100%
comment:14 by , 12 years ago
comment:16 by , 11 years ago
i had to change the location of the uploaded file to reproduce the issue:
http://www.filehosting.org/file/details/501454/ffmpeg_2626_disabled.zip



Rereading your ticket, I am not sure if I understand it:
Afaict, FFmpeg by default makes the first audio track "enabled" and the remaining audio tracks "disabled" which may not match your ticket description.
Please add your command line together with the complete, uncut console output to make this a valid ticket and to allow to reproduce the issue.