[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