Ticket #2083 (closed defect: fixed)
'Invalid argument' or 'Assertion ost->source_index >= 0 failed at ffmpeg.c:2932' message on subtitle metadata
| Reported by: | rtmi1 | Owned by: | |
|---|---|---|---|
| Priority: | important | Component: | FFmpeg |
| Version: | git-master | Keywords: | crash abort regression |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | yes | |
| Analyzed by developer: | no |
Description
Summary of the bug:
Trying to copy streams plus a TTF font file to support hardware players that need an embedded font for subtitles.
- 1 video stream from MtStHel?.mkv (This file only contains 1 video stream and was previously created with ffmpeg)
- 3 audio streams from MtStHel?-eng-1-normalized.mp2, MtStHel?-ger-2-normalized.mp2 and MtStHel?-eng-3-normalized.mp2 (Each file only contains * 1 audio track and was also previously created with ffmpeg)
- 2 subtitle streams from MtStHel?-en-subtitles.sub and MtStHel?-de-subtitles.sub (Each file created with the 'mencoder -vobsubout ...' command)
- 1 attachment: a TrueType? font file 'tahoma.ttf', 383804 bytes, tagged as 'mimetype=application/x-truetype-font' as described in 'http://ffmpeg.org/ffmpeg.html'.
ffmpeg quits with an "Attachment stream 6 has no mimetype tag" and finally an "Invalid argument" message.
No output is produced.
Changing the mimetype to "application/octet-stream" or "application/x-font-ttf gives the same result.
Omitting the attachment gives a correct result, until it comes to the hardware player mentioned:
That player lists the 2 subtitle streams, but can not display them (no text on the screen).
Hardware: MSI Movie Station HD1000
How to reproduce:
martin@pc003:/media/Work> ffmpeg -copyts -i MtStHel.mkv -i MtStHel-eng-1-normalized.mp2 -i MtStHel-ger-2-normalized.mp2 -i MtStHel-eng-3-normalized.mp2 -i MtStHel-en-subtitles.sub -i MtStHel-de-subtitles.sub -map 0:0 -c:v copy -map 1:0 -c:a copy -metadata:s:a:0 language=eng -map 2:0 -c:a copy -metadata:s:a:1 language=ger -map 3:0 -c:a copy -metadata:s:a:2 language=eng -map 4:0 -c:s copy -metadata:s:s:0 language=eng -map 5:0 -c:s copy -metadata:s:s:1 language=ger -attach tahoma.ttf -metadata:s:0 mimetype=application/x-truetype-font -f matroska MtStHel-ffmpeg.mkv
ffmpeg version 1.0.1 Copyright (c) 2000-2012 the FFmpeg developers
built on Dec 11 2012 22:10:12 with gcc 4.6 (SUSE Linux)
configuration: --shlibdir=/usr/lib --prefix=/usr --mandir=/usr/share/man --libdir=/usr/lib --enable-shared --disable-static --enable-debug --disable-stripping --extra-cflags='-fomit-frame-pointer -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gsm' --enable-gpl --enable-x11grab --enable-version3 --enable-pthreads --enable-avfilter --enable-libpulse --enable-libvpx --enable-libopus --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libspeex --enable-libxvid --enable-libx264 --enable-libschroedinger --enable-libgsm --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-postproc --enable-libdc1394 --enable-librtmp --enable-libfreetype --enable-avresample
libavutil 51. 73.101 / 51. 73.101
libavcodec 54. 59.100 / 54. 59.100
libavformat 54. 29.104 / 54. 29.104
libavdevice 54. 2.101 / 54. 2.101
libavfilter 3. 17.100 / 3. 17.100
libswscale 2. 1.101 / 2. 1.101
libswresample 0. 15.100 / 0. 15.100
libpostproc 52. 0.100 / 52. 0.100
Input #0, matroska,webm, from 'MtStHel.mkv':
Metadata:
ENCODER : Lavf54.29.104
Duration: 01:48:34.64, start: 0.000000, bitrate: 1225 kb/s
Stream #0:0: Video: h264 (High), yuv420p, 716x422 [SAR 64:45 DAR 22912:9495], SAR 209:147 DAR 74822:31017, 25 fps, 25 tbr, 1k tbn, 50 tbc (default)
[mp3 @ 0x8082540] max_analyze_duration 5000000 reached at 5016000
[mp3 @ 0x8082540] Estimating duration from bitrate, this may be inaccurate
Input #1, mp3, from 'MtStHel-eng-1-normalized.mp2':
Duration: 01:48:34.60, start: 0.000000, bitrate: 192 kb/s
Stream #1:0: Audio: mp2, 48000 Hz, stereo, s16, 192 kb/s
[mp3 @ 0x813da40] max_analyze_duration 5000000 reached at 5016000
[mp3 @ 0x813da40] Estimating duration from bitrate, this may be inaccurate
Input #2, mp3, from 'MtStHel-ger-2-normalized.mp2':
Duration: 01:48:34.60, start: 0.000000, bitrate: 192 kb/s
Stream #2:0: Audio: mp2, 48000 Hz, stereo, s16, 192 kb/s
[mp3 @ 0x8078d60] max_analyze_duration 5000000 reached at 5016000
[mp3 @ 0x8078d60] Estimating duration from bitrate, this may be inaccurate
Input #3, mp3, from 'MtStHel-eng-3-normalized.mp2':
Duration: 01:48:34.60, start: 0.000000, bitrate: 192 kb/s
Stream #3:0: Audio: mp2, 48000 Hz, stereo, s16, 192 kb/s
Input #4, mpeg, from 'MtStHel-en-subtitles.sub':
Duration: 01:42:48.00, start: 50.760000, bitrate: 8 kb/s
Stream #4:0[0x20]: Subtitle: dvd_subtitle
Input #5, mpeg, from 'MtStHel-de-subtitles.sub':
Duration: 01:47:40.68, start: 50.760000, bitrate: 8 kb/s
Stream #5:0[0x21]: Subtitle: dvd_subtitle
File 'MtStHel-ffmpeg.mkv' already exists. Overwrite ? [y/N] y
Attachment stream 6 has no mimetype tag and it cannot be deduced from the codec id.
Output #0, matroska, to 'MtStHel-ffmpeg.mkv':
Metadata:
encoder : Lavf54.29.104
Stream #0:0: Video: h264, yuv420p, 716x422 [SAR 209:147 DAR 74822:31017], q=2-31, 25 fps, 1k tbn, 1k tbc (default)
Metadata:
mimetype : application/x-truetype-font
Stream #0:1(eng): Audio: mp2, 48000 Hz, stereo, 192 kb/s
Stream #0:2(ger): Audio: mp2, 48000 Hz, stereo, 192 kb/s
Stream #0:3(eng): Audio: mp2, 48000 Hz, stereo, 192 kb/s
Stream #0:4(eng): Subtitle: dvd_subtitle
Stream #0:5(ger): Subtitle: dvd_subtitle
Stream #0:6: Attachment: none
Metadata:
filename : tahoma.ttf
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #1:0 -> #0:1 (copy)
Stream #2:0 -> #0:2 (copy)
Stream #3:0 -> #0:3 (copy)
Stream #4:0 -> #0:4 (copy)
Stream #5:0 -> #0:5 (copy)
File tahoma.ttf -> Stream #0:6
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
martin@pc003:/media/Work>
When I use '-metadata:s:t:0' instead of '-metadata:s:0' to specify that only the attachment is to be tagged, then ffmpeg issues a different error:
martin@pc003:/media/Work> ffmpeg -copyts -i MtStHel.mkv -i MtStHel-eng-1-normalized.mp2 -i MtStHel-ger-2-normalized.mp2 -i MtStHel-eng-3-normalized.mp2 -i MtStHel-en-subtitles.sub -i MtStHel-de-subtitles.sub -map 0:0 -c:v copy -map 1:0 -c:a copy -metadata:s:a:0 language=eng -map 2:0 -c:a copy -metadata:s:a:1 language=ger -map 3:0 -c:a copy -metadata:s:a:2 language=eng -map 4:0 -c:s copy -metadata:s:s:0 language=eng -map 5:0 -c:s copy -metadata:s:s:1 language=ger -attach tahoma.ttf -metadata:s:t:0 mimetype=application/x-truetype-font -f matroska MtStHel-ffmpeg.mkv
ffmpeg version 1.0.1 Copyright (c) 2000-2012 the FFmpeg developers
built on Dec 11 2012 22:10:12 with gcc 4.6 (SUSE Linux)
configuration: --shlibdir=/usr/lib --prefix=/usr --mandir=/usr/share/man --libdir=/usr/lib --enable-shared --disable-static --enable-debug --disable-stripping --extra-cflags='-fomit-frame-pointer -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gsm' --enable-gpl --enable-x11grab --enable-version3 --enable-pthreads --enable-avfilter --enable-libpulse --enable-libvpx --enable-libopus --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libspeex --enable-libxvid --enable-libx264 --enable-libschroedinger --enable-libgsm --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-postproc --enable-libdc1394 --enable-librtmp --enable-libfreetype --enable-avresample
libavutil 51. 73.101 / 51. 73.101
libavcodec 54. 59.100 / 54. 59.100
libavformat 54. 29.104 / 54. 29.104
libavdevice 54. 2.101 / 54. 2.101
libavfilter 3. 17.100 / 3. 17.100
libswscale 2. 1.101 / 2. 1.101
libswresample 0. 15.100 / 0. 15.100
libpostproc 52. 0.100 / 52. 0.100
Input #0, matroska,webm, from 'MtStHel.mkv':
Metadata:
ENCODER : Lavf54.29.104
Duration: 01:48:34.64, start: 0.000000, bitrate: 1225 kb/s
Stream #0:0: Video: h264 (High), yuv420p, 716x422 [SAR 64:45 DAR 22912:9495], SAR 209:147 DAR 74822:31017, 25 fps, 25 tbr, 1k tbn, 50 tbc (default)
[mp3 @ 0x8082540] max_analyze_duration 5000000 reached at 5016000
[mp3 @ 0x8082540] Estimating duration from bitrate, this may be inaccurate
Input #1, mp3, from 'MtStHel-eng-1-normalized.mp2':
Duration: 01:48:34.60, start: 0.000000, bitrate: 192 kb/s
Stream #1:0: Audio: mp2, 48000 Hz, stereo, s16, 192 kb/s
[mp3 @ 0x813da40] max_analyze_duration 5000000 reached at 5016000
[mp3 @ 0x813da40] Estimating duration from bitrate, this may be inaccurate
Input #2, mp3, from 'MtStHel-ger-2-normalized.mp2':
Duration: 01:48:34.60, start: 0.000000, bitrate: 192 kb/s
Stream #2:0: Audio: mp2, 48000 Hz, stereo, s16, 192 kb/s
[mp3 @ 0x8078d60] max_analyze_duration 5000000 reached at 5016000
[mp3 @ 0x8078d60] Estimating duration from bitrate, this may be inaccurate
Input #3, mp3, from 'MtStHel-eng-3-normalized.mp2':
Duration: 01:48:34.60, start: 0.000000, bitrate: 192 kb/s
Stream #3:0: Audio: mp2, 48000 Hz, stereo, s16, 192 kb/s
Input #4, mpeg, from 'MtStHel-en-subtitles.sub':
Duration: 01:42:48.00, start: 50.760000, bitrate: 8 kb/s
Stream #4:0[0x20]: Subtitle: dvd_subtitle
Input #5, mpeg, from 'MtStHel-de-subtitles.sub':
Duration: 01:47:40.68, start: 50.760000, bitrate: 8 kb/s
Stream #5:0[0x21]: Subtitle: dvd_subtitle
File 'MtStHel-ffmpeg.mkv' already exists. Overwrite ? [y/N] y
Output #0, matroska, to 'MtStHel-ffmpeg.mkv':
Metadata:
encoder : Lavf54.29.104
Stream #0:0: Video: h264, yuv420p, 716x422 [SAR 209:147 DAR 74822:31017], q=2-31, 25 fps, 1k tbn, 1k tbc (default)
Stream #0:1(eng): Audio: mp2, 48000 Hz, stereo, 192 kb/s
Stream #0:2(ger): Audio: mp2, 48000 Hz, stereo, 192 kb/s
Stream #0:3(eng): Audio: mp2, 48000 Hz, stereo, 192 kb/s
Stream #0:4(eng): Subtitle: dvd_subtitle
Stream #0:5(ger): Subtitle: dvd_subtitle
Stream #0:6: Attachment: none
Metadata:
filename : tahoma.ttf
mimetype : application/x-truetype-font
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #1:0 -> #0:1 (copy)
Stream #2:0 -> #0:2 (copy)
Stream #3:0 -> #0:3 (copy)
Stream #4:0 -> #0:4 (copy)
Stream #5:0 -> #0:5 (copy)
File tahoma.ttf -> Stream #0:6
Press [q] to stop, [?] for help
Assertion ost->source_index >= 0 failed at ffmpeg.c:2932
Aborted
martin@pc003:/media/Work>
Change History
comment:1 Changed 5 months ago by cehoyos
- Keywords mkv metadata added; ffmpeg, metadata, mimetype, subtitles removed
- Component changed from FFmpeg to undetermined
comment:2 Changed 5 months ago by cehoyos
- Status changed from new to open
- Reproduced by developer set
- Component changed from undetermined to FFmpeg
- Priority changed from minor to important
- Version changed from unspecified to git-master
- Keywords crash abort regression added; mkv metadata removed
Regression since 1cadab6 (crash in select_input_file() in ffmpeg.c) / 429c6ca (assert).
$ ffmpeg -i tests/lena.pnm -attach /usr/share/fonts/truetype/DejaVuSans.ttf -metadata:s mimetype=application/x-truetype-font out.mkv
ffmpeg version N-48332-gfe5a2fc Copyright (c) 2000-2012 the FFmpeg developers
built on Dec 31 2012 03:12:02 with gcc 4.7 (SUSE Linux)
configuration: --enable-gpl --disable-indev=jack
libavutil 52. 13.100 / 52. 13.100
libavcodec 54. 85.100 / 54. 85.100
libavformat 54. 57.100 / 54. 57.100
libavdevice 54. 3.102 / 54. 3.102
libavfilter 3. 30.102 / 3. 30.102
libswscale 2. 1.103 / 2. 1.103
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
Input #0, image2, from 'tests/lena.pnm':
Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
Stream #0:0: Video: ppm, rgb24, 256x256, 25 tbr, 25 tbn, 25 tbc
Output #0, matroska, to 'out.mkv':
Metadata:
encoder : Lavf54.57.100
Stream #0:0: Video: mpeg4, yuv420p, 256x256, q=2-31, 200 kb/s, 1k tbn, 25 tbc
Metadata:
mimetype : application/x-truetype-font
Stream #0:1: Attachment: none
Metadata:
filename : DejaVuSans.ttf
mimetype : application/x-truetype-font
Stream mapping:
Stream #0:0 -> #0:0 (ppm -> mpeg4)
File /usr/share/fonts/truetype/DejaVuSans.ttf -> Stream #0:1
Press [q] to stop, [?] for help
Assertion ost->source_index >= 0 failed at ffmpeg.c:2976
Aborted



Is this also reproducible with current git head?