[FFmpeg-user] Subtitle stream added to QT MOV format even when -snswitch used

Evan Scanlan evan.m.scanlan at gmail.com
Sun Aug 14 02:03:15 CEST 2011


>>
>> Thanks for the response!
>>
>> It mainly bothers me because it makes it so that Quicktime cannot
>> manipulate the file.  So I cannot save the file from Quicktime nor can
>> I use other programs like iFlicks (which I think uses Quicktime API)
>> when the subtitle stream is present.  On other converted mov
>> containers (without subtitle stream) iFlicks and Quicktime work fine.
>
> This i don't understand.
> A subtitle track should be a custom formatted text file pasted in QT,
> has nothing to do with Quicktime being able to manipulate the file or not.
> (actually, QT player can be used to strip the track...)
> No idea about QT on Linux though, but this is the case on Win and Mac.
>
Thanks again for helping with this.

If I had to guess (and this is a 100% guess) I would say that there is
not actually a subtitle
track there at all -- instead maybe something in the mov container
header (is there such a thing)
that incorrectly marks an additional subtitle track when converting
from mkv file?  Then maybe
when QT reads the file it sees the incorrect header and does not
manipulate file correctly -- this
is just a pure guess though -- I am curious if you do a conversion
from mkv to mov whether you
get this same outcome?


>>> (i mean, does it show on playback?)

No - does not show on playback (grayed out in QT Player)

>>> If so, can't you get rid of it in the second pass with mapping? (it
>>> appears
>>> as a seperate stream...)
>>> (or perhaps map the first pass, or pipe the second pass...)
>>
>> I tried that... running on the mov file again with -vocdec copy
>> -acodec copy -sn -f mov ... does not get rid of the subtitle stream.
>> It stays there and I cannot get rid of it no matter what I have tried.
>> Any suggestions on how to trick ffmpeg into removing the stream would
>> be great!
>
> Well, did you try -map instead of -sn ?
Yes - happens equally if I use -map 0:0 -map 0:1 ... here is the
result of running on the test.mov file that I used in
my original post -- second run shows that subtitle track is still there...

[evan at linux]$ ffmpeg -i test.mov -map 0:0 -map 0:1 -vcodec copy
-acodec copy -sn -f mov test2.mov
ffmpeg version 0.7-rc1, Copyright (c) 2000-2011 the FFmpeg developers
  built on Jun 11 2011 21:15:16 with gcc 4.4.4 20100630 (Red Hat 4.4.4-10)
  configuration: --prefix=/usr --libdir=/usr/lib64
--shlibdir=/usr/lib64 --mandir=/usr/share/man --enable-shared
--enable-runtime-cpudetect --enable-gpl --enable-version3
--enable-postproc --enable-avfilter --enable-pthreads --enable-x11grab
--enable-vdpau --disable-avisynth --enable-libopencv
--enable-libdc1394 --enable-libdirac --enable-libgsm
--enable-libmp3lame --enable-libnut --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp
--enable-libschroedinger --enable-libspeex --enable-libtheora
--enable-libvorbis --enable-libx264 --enable-libxavs --enable-libxvid
--extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2
-fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64
-mtune=generic -fPIC' --disable-stripping
  libavutil    50. 40. 1 / 50. 40. 1
  libavcodec   52.120. 0 / 52.120. 0
  libavformat  52.108. 0 / 52.108. 0
  libavdevice  52.  4. 0 / 52.  4. 0
  libavfilter   1. 77. 0 /  1. 77. 0
  libswscale    0. 13. 0 /  0. 13. 0
  libpostproc  51.  2. 0 / 51.  2. 0
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 512
    compatible_brands: qt
    creation_time   : 1970-01-01 00:00:00
    encoder         : Lavf52.108.0
  Duration: 00:00:05.06, start: 0.000000, bitrate: 1052 kb/s
    Chapter #0.0: start 0.000000, end 5.000000
    Metadata:
      title           : Chapter 00
    Stream #0.0(eng): Video: vc1 (Advanced), yuv420p, 1920x1080 [PAR
1:1 DAR 16:9], 734 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 23.98 tbc
    Metadata:
      creation_time   : 1970-01-01 00:00:00
    Stream #0.1(eng): Audio: mp3, 48000 Hz, 2 channels, s16, 320 kb/s
    Metadata:
      creation_time   : 1970-01-01 00:00:00
    Stream #0.2(eng): Subtitle: text / 0x74786574, 0 kb/s
    Metadata:
      creation_time   : 1970-01-01 00:00:00
Output #0, mov, to 'test2.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 512
    compatible_brands: qt
    creation_time   : 1970-01-01 00:00:00
    encoder         : Lavf52.108.0
    Chapter #0.0: start 0.000000, end 5.000000
    Metadata:
      title           : Chapter 00
    Stream #0.0(eng): Video: vc-1 / 0x312D6376, yuv420p, 1920x1080
[PAR 1:1 DAR 16:9], q=2-31, 734 kb/s, 24k tbn, 23.98 tbc
    Metadata:
      creation_time   : 1970-01-01 00:00:00
    Stream #0.1(eng): Audio: libmp3lame, 48000 Hz, 2 channels, 320 kb/s
    Metadata:
      creation_time   : 1970-01-01 00:00:00
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
Press [q] to stop encoding
frame=  120 fps=  0 q=-1.0 Lsize=     651kB time=5.00 bitrate=1064.9kbits/s
video:449kB audio:198kB global headers:0kB muxing overhead 0.621834%

[evan at linux]$ ffmpeg -i test2.mov
ffmpeg version 0.7-rc1, Copyright (c) 2000-2011 the FFmpeg developers
  built on Jun 11 2011 21:15:16 with gcc 4.4.4 20100630 (Red Hat 4.4.4-10)
  configuration: --prefix=/usr --libdir=/usr/lib64
--shlibdir=/usr/lib64 --mandir=/usr/share/man --enable-shared
--enable-runtime-cpudetect --enable-gpl --enable-version3
--enable-postproc --enable-avfilter --enable-pthreads --enable-x11grab
--enable-vdpau --disable-avisynth --enable-libopencv
--enable-libdc1394 --enable-libdirac --enable-libgsm
--enable-libmp3lame --enable-libnut --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp
--enable-libschroedinger --enable-libspeex --enable-libtheora
--enable-libvorbis --enable-libx264 --enable-libxavs --enable-libxvid
--extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2
-fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64
-mtune=generic -fPIC' --disable-stripping
  libavutil    50. 40. 1 / 50. 40. 1
  libavcodec   52.120. 0 / 52.120. 0
  libavformat  52.108. 0 / 52.108. 0
  libavdevice  52.  4. 0 / 52.  4. 0
  libavfilter   1. 77. 0 /  1. 77. 0
  libswscale    0. 13. 0 /  0. 13. 0
  libpostproc  51.  2. 0 / 51.  2. 0
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test2.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 512
    compatible_brands: qt
    creation_time   : 1970-01-01 00:00:00
    encoder         : Lavf52.108.0
  Duration: 00:00:05.06, start: 0.000000, bitrate: 1052 kb/s
    Chapter #0.0: start 0.000000, end 5.000000
    Metadata:
      title           : Chapter 00
    Stream #0.0(eng): Video: vc1 (Advanced), yuv420p, 1920x1080 [PAR
1:1 DAR 16:9], 734 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 23.98 tbc
    Metadata:
      creation_time   : 1970-01-01 00:00:00
    Stream #0.1(eng): Audio: mp3, 48000 Hz, 2 channels, s16, 320 kb/s
    Metadata:
      creation_time   : 1970-01-01 00:00:00
    Stream #0.2(eng): Subtitle: text / 0x74786574, 0 kb/s
    Metadata:
      creation_time   : 1970-01-01 00:00:00
At least one output file must be specified
[evan at linux]$


More information about the ffmpeg-user mailing list