[FFmpeg-trac] #4589(undetermined:new): support alis data reference type in mov

FFmpeg trac at avcodec.org
Wed Jun 3 10:25:02 CEST 2015


#4589: support alis data reference type in mov
-------------------------------------+-------------------------------------
               Reporter:  dericed    |                  Owner:
                   Type:             |                 Status:  new
  enhancement                        |              Component:
               Priority:  normal     |  undetermined
                Version:  2.6.2      |               Keywords:  mov
             Blocked By:             |               Blocking:
Reproduced by developer:  0          |  Analyzed by developer:  0
-------------------------------------+-------------------------------------
 Summary of the bug:

 I've been trying to get FFmpeg to generate a file that is supported by
 Blackmagic Media Express. I can get very close but can not get FFmpeg
 alone to produce a file acceptable to Media Express. I know that I should
 send a bug to Blackmagic as well but wanted to send along my notes here as
 well.

 With the command below I can make a sample NTSC file, but to get it to
 work in Media Express I have to edit the dref type of each trak from 'url
 ' to 'alis'.

 Associated QuickTime documentation (see table 4-2):
 https://developer.apple.com/library/mac/documentation/QuickTime/QTFF/QTFFChap2/qtff2.html

 Current use of 'url ' in movenc.c:
 https://github.com/FFmpeg/FFmpeg/blob/master/libavformat/movenc.c#L1951-L1952

 How to reproduce:

 This command makes a file that is not supported by Blackmagic Media
 Express:
 {{{
 ffmpeg -f lavfi -i testsrc=d=1:s=720x486:r=30000/1001 -f lavfi -i
 aevalsrc=0:c=2:s=48000:d=1 -aspect 4:3 -c:v rawvideo -pix_fmt uyvy422
 -vtag 2vuy  -c:a pcm_s24le -vf setfield=bff -y
 doesnotworkinmediaexpress.mov
 ffmpeg version 2.6.3 Copyright (c) 2000-2015 the FFmpeg developers
   built with Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM
 3.5svn)
   configuration: --prefix=/usr/local/Cellar/ffmpeg/2.6.3 --enable-shared
 --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables
 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-
 libx264 --enable-libmp3lame --enable-libvo-aacenc --enable-libxvid
 --enable-libfreetype --enable-libfaac --enable-libass --enable-ffplay
 --enable-libopenjpeg --disable-decoder=jpeg2000 --extra-
 cflags='-I/usr/local/Cellar/openjpeg/1.5.0/include ' --enable-nonfree
 --enable-vda
   libavutil      54. 20.100 / 54. 20.100
   libavcodec     56. 26.100 / 56. 26.100
   libavformat    56. 25.101 / 56. 25.101
   libavdevice    56.  4.100 / 56.  4.100
   libavfilter     5. 11.102 /  5. 11.102
   libavresample   2.  1.  0 /  2.  1.  0
   libswscale      3.  1.101 /  3.  1.101
   libswresample   1.  1.100 /  1.  1.100
   libpostproc    53.  3.100 / 53.  3.100
 Input #0, lavfi, from 'testsrc=d=1:s=720x486:r=30000/1001':
   Duration: N/A, start: 0.000000, bitrate: N/A
     Stream #0:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 720x486
 [SAR 1:1 DAR 40:27], 29.97 tbr, 29.97 tbn, 29.97 tbc
 Single channel layout '2' is interpreted as a number of channels, switch
 to the syntax '2c' otherwise it will be interpreted as a channel layout
 number in a later version
 Input #1, lavfi, from 'aevalsrc=0:c=2:s=48000:d=1':
   Duration: N/A, start: 0.000000, bitrate: 6144 kb/s
     Stream #1:0: Audio: pcm_f64le, 48000 Hz, stereo, dbl, 6144 kb/s
 Output #0, mov, to 'doesnotworkinmediaexpress.mov':
   Metadata:
     encoder         : Lavf56.25.101
     Stream #0:0: Video: rawvideo (2vuy / 0x79757632), uyvy422, 720x486
 [SAR 9:10 DAR 4:3], q=2-31, 200 kb/s, 29.97 fps, 30k tbn, 29.97 tbc
     Metadata:
       encoder         : Lavc56.26.100 rawvideo
     Stream #0:1: Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, stereo,
 s32, 2304 kb/s
     Metadata:
       encoder         : Lavc56.26.100 pcm_s24le
 Stream mapping:
   Stream #0:0 -> #0:0 (rawvideo (native) -> rawvideo (native))
   Stream #1:0 -> #0:1 (pcm_f64le (native) -> pcm_s24le (native))
 Press [q] to stop, [?] for help
 frame=   30 fps=0.0 q=0.0 Lsize=   20787kB time=00:00:01.00
 bitrate=169834.0kbits/s
 video:20503kB audio:282kB subtitle:0kB other streams:0kB global
 headers:0kB muxing overhead: 0.008913%
 }}}

 If the resulting file is then edited (I'm using a hex editor) to change
 the "url " in the dref atom to "alis" then the file works fine in Media
 Express.

 I think that being able to produce files from FFmpeg for use in Media
 Express would be helpful. I've noticed that many QuickTime producing
 applications, like Media Express and Final Cut use 'alis' and not 'url ',
 but I am no expert in this atom. Is it feasible or a good idea to change
 'url ' to 'alis' or to provide an option to use 'alis' data reference
 types.

--
Ticket URL: <https://trac.ffmpeg.org/ticket/4589>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list