Opened 13 years ago
Closed 12 years ago
#867 closed defect (fixed)
support in24 audio in mov muxer
Reported by: | dave rice | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | avformat |
Version: | git-master | Keywords: | atag mov |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | yes | |
Analyzed by developer: | no |
Description
In order to maintain interoperability with a broadcast system I need to transcode audio to pcm_s24be with an 'in24' codecid. Using ffmpeg the codecid for '-acodec pcm_s24be' produces a codecid of 'lpcm' even if I specify '-atag in24'
Here's my output using ffmpeg to try to output an 'in24' audio stream in Quicktime:
ffmpeg -i MI-351_8b.mov -vn -acodec pcm_s24be -atag in24 in24.mov ffmpeg version N-32741-g440e984, Copyright (c) 2000-2011 the FFmpeg developers built on Dec 27 2011 09:48:51 with gcc 4.2.1 (Apple Inc. build 5666) (dot 3) configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared --enable-gpl --enable-version3 --enable-libfreetype --enable-nonfree --enable-hardcoded-tables --cc=/usr/bin/gcc-4.2 --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libxvid libavutil 51. 33.100 / 51. 33.100 libavcodec 53. 48.100 / 53. 48.100 libavformat 53. 28.100 / 53. 28.100 libavdevice 53. 4.100 / 53. 4.100 libavfilter 2. 55.100 / 2. 55.100 libswscale 2. 1.100 / 2. 1.100 libswresample 0. 5.100 / 0. 5.100 libpostproc 51. 2.100 / 51. 2.100 Seems stream 0 codec frame rate differs from container frame rate: 30000.00 (30000/1) -> 29.97 (30000/1001) Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'MI-351_8b.mov': Metadata: major_brand : qt minor_version : 512 compatible_brands: qt creation_time : 1970-01-01 00:00:00 encoder : Lavf53.14.0 Duration: 00:00:13.03, start: 0.000000, bitrate: 169865 kb/s Stream #0:0(eng): Video: rawvideo (2vuy / 0x79757632), uyvy422, 720x486, 167793 kb/s, SAR 9:10 DAR 4:3, 29.97 fps, 29.97 tbr, 30k tbn, 30k tbc Metadata: creation_time : 1970-01-01 00:00:00 handler_name : DataHandler Stream #0:1(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 2 channels, s32, 2304 kb/s Metadata: creation_time : 1970-01-01 00:00:00 handler_name : DataHandler Output #0, mov, to 'in24.mov': Metadata: major_brand : qt minor_version : 512 compatible_brands: qt creation_time : 1970-01-01 00:00:00 encoder : Lavf53.28.100 Stream #0:0(eng): Audio: pcm_s24be (in24 / 0x34326E69), 48000 Hz, 2 channels, s32, 2304 kb/s Metadata: creation_time : 1970-01-01 00:00:00 handler_name : DataHandler Stream mapping: Stream #0:1 -> #0:0 (pcm_s24le -> pcm_s24be) Press [q] to stop, [?] for help size= 3666kB time=00:00:13.03 bitrate=2304.4kbits/s video:0kB audio:3665kB global headers:0kB muxing overhead 0.018598%
Checking the file shows the fourcc is 'lpcm':
ffmpeg -i in24.mov ffmpeg version N-32741-g440e984, Copyright (c) 2000-2011 the FFmpeg developers built on Dec 27 2011 09:48:51 with gcc 4.2.1 (Apple Inc. build 5666) (dot 3) configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared --enable-gpl --enable-version3 --enable-libfreetype --enable-nonfree --enable-hardcoded-tables --cc=/usr/bin/gcc-4.2 --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libxvid libavutil 51. 33.100 / 51. 33.100 libavcodec 53. 48.100 / 53. 48.100 libavformat 53. 28.100 / 53. 28.100 libavdevice 53. 4.100 / 53. 4.100 libavfilter 2. 55.100 / 2. 55.100 libswscale 2. 1.100 / 2. 1.100 libswresample 0. 5.100 / 0. 5.100 libpostproc 51. 2.100 / 51. 2.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'in24.mov': Metadata: major_brand : qt minor_version : 512 compatible_brands: qt creation_time : 1970-01-01 00:00:00 encoder : Lavf53.28.100 Duration: 00:00:13.03, start: 0.000000, bitrate: 2304 kb/s Stream #0:0(eng): Audio: pcm_s24be (lpcm / 0x6D63706C), 48000 Hz, 2 channels, s32, 2304 kb/s Metadata: creation_time : 1970-01-01 00:00:00 handler_name : DataHandler At least one output file must be specified
The same command through ffmbc works and produces an output with 'in24' codec id.
Attachments (2)
Change History (9)
comment:1 by , 13 years ago
Component: | undetermined → avformat |
---|---|
Keywords: | mov added |
Reproduced by developer: | set |
Status: | new → open |
comment:2 by , 13 years ago
Could you test this patch?
http://thread.gmane.org/gmane.comp.video.ffmpeg.devel/138633
QuickTime does not read "in24" here, so the resulting file does not play for me on OSX.
comment:3 by , 13 years ago
Hi, I tested the patch a few days ago and it didn't seem to work. QuickTime played the audio back as silence whereas the same -atag command with ffmbc worked. I'll redo the test today with patched ffmpeg and ffmbc to provide samples and outputs. Thanks.
comment:4 by , 13 years ago
So this patch does force the output to use the 'in24' codec id; however the resulting file plays out as silence or a faint buzz sound.
Here's the ffmpeg report
ffmpeg started on 2012-01-18 at 00:04:21 Report written to "ffmpeg-20120118-000421.log" Command line: ./ffmpeg -y -report -i SoundieF.mpeg -ss 10 -t 5 -vn -acodec pcm_s24le -atag in24 SoudieF_ffmpeg_in24.mov ffmpeg version N-36769-gb18e17e Copyright (c) 2000-2012 the FFmpeg developers built on Jan 12 2012 21:51:39 with llvm_gcc 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00) configuration: libavutil 51. 34.100 / 51. 34.100 libavcodec 53. 55.100 / 53. 55.100 libavformat 53. 29.100 / 53. 29.100 libavdevice 53. 4.100 / 53. 4.100 libavfilter 2. 59.100 / 2. 59.100 libswscale 2. 1.100 / 2. 1.100 libswresample 0. 6.100 / 0. 6.100 [mpeg @ 0x7fd570828a00] Format mpeg probed with size=4096 and score=52 [mpeg @ 0x7fd570828a00] probing stream 0 pp:2500 [mpeg @ 0x7fd570828a00] Probe with size=794, packets=1 detected mpegvideo with score=25 [mpeg @ 0x7fd570828a00] probing stream 0 pp:2499 [mpeg @ 0x7fd570828a00] Probe with size=2809, packets=2 detected mpegvideo with score=25 [mpeg @ 0x7fd570828a00] probing stream 0 pp:2498 [mpeg @ 0x7fd570828a00] Probe with size=4824, packets=3 detected mpegvideo with score=25 [mpeg @ 0x7fd570828a00] probing stream 0 pp:2497 [mpeg @ 0x7fd570828a00] probing stream 0 pp:2496 [mpeg @ 0x7fd570828a00] Probe with size=8854, packets=5 detected mpegvideo with score=25 [mpeg @ 0x7fd570828a00] probing stream 0 pp:2495 [mpeg @ 0x7fd570828a00] probing stream 0 pp:2494 [mpeg @ 0x7fd570828a00] probing stream 0 pp:2493 [mpeg @ 0x7fd570828a00] probing stream 0 pp:2492 [mpeg @ 0x7fd570828a00] Probe with size=16914, packets=9 detected mpegvideo with score=25 [mpeg @ 0x7fd570828a00] probing stream 0 pp:2491 [mpeg @ 0x7fd570828a00] probing stream 0 pp:2490 [mpeg @ 0x7fd570828a00] probing stream 0 pp:2489 [mpeg @ 0x7fd570828a00] probing stream 0 pp:2488 [mpeg @ 0x7fd570828a00] probing stream 0 pp:2487 [mpeg @ 0x7fd570828a00] probing stream 0 pp:2486 [mpeg @ 0x7fd570828a00] probing stream 0 pp:2485 [mpeg @ 0x7fd570828a00] probing stream 0 pp:2484 [mpeg @ 0x7fd570828a00] Probe with size=33034, packets=17 detected mpegvideo with score=51 [mpeg @ 0x7fd570828a00] probed stream 0 [mpeg2video @ 0x7fd570831000] err{or,}_recognition separate: 1; 1 [mpeg2video @ 0x7fd570831000] err{or,}_recognition combined: 1; 10001 [mpeg2video @ 0x7fd570831000] detected 2 logical cores [mpeg2video @ 0x7fd570831000] Unsupported bit depth: 0 [mp2 @ 0x7fd570830a00] err{or,}_recognition separate: 1; 1 [mp2 @ 0x7fd570830a00] err{or,}_recognition combined: 1; 10001 [mpeg @ 0x7fd570828a00] max_analyze_duration 5000000 reached at 5005000 Input #0, mpeg, from 'SoundieF.mpeg': Duration: 00:02:24.10, start: 839.378778, bitrate: 3786 kb/s Stream #0:0[0x1e0], 152, 1/90000: Video: mpeg2video (Main), yuv420p, 352x480 [SAR 20:11 DAR 4:3], 3500 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc Stream #0:1[0x1c0], 193, 1/90000: Audio: mp2, 48000 Hz, stereo, s16, 224 kb/s Incompatible sample format 's16' for codec 'pcm_s24le', auto-selecting format 's32' [pcm_s24le @ 0x7fd570831c00] err{or,}_recognition separate: 1; 1 [pcm_s24le @ 0x7fd570831c00] err{or,}_recognition combined: 1; 10001 [mp2 @ 0x7fd570830a00] err{or,}_recognition separate: 1; 10001 [mp2 @ 0x7fd570830a00] err{or,}_recognition combined: 1; 10001 Output #0, mov, to 'SoudieF_ffmpeg_in24.mov': Metadata: encoder : Lavf53.29.100 Stream #0:0, 0, 1/48000: Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, stereo, s32, 2304 kb/s Stream mapping: Stream #0:1 -> #0:0 (mp2 -> pcm_s24le) Press [q] to stop, [?] for help size= 1405kB time=00:00:04.99 bitrate=2305.2kbits/s video:0kB audio:1404kB global headers:0kB muxing overhead 0.051193%
I tested the same equivalent command in ffmbc which did produce a playable file. Here's the ffmbc output
ffmbc -y -i SoundieF.mpeg -ss 10 -t 5 -vn -acodec pcm_s24le -atag in24 SoundieF_ffmbc_in24.mov FFmbc version 0.7-rc4 Copyright (c) 2008-2011 Baptiste Coudurier and the FFmpeg developers Input #0, mpeg, from 'SoundieF.mpeg': Duration: 00:02:24.11, start: 839.368778, bitrate: 3786 kb/s Stream #0.0[0x1e0](und): Video: mpeg2video (Main), yuv420p, 352x480i tff [PAR 20:11 DAR 4:3], 3500 kb/s, 29.97 fps Stream #0.1[0x1c0](und): Audio: mp2, 48000 Hz, stereo, s16, 224 kb/s Incompatible sample format 's16' for codec 'pcm_s24le', auto-selecting format 's32' Output #0, mov, to 'SoundieF_ffmbc_in24.mov': Metadata: encoder: FFmbc 0.7 Stream #0.0(und): Audio: pcm_s24le, 48000 Hz, stereo, s32, 2304 kb/s Stream mapping: Stream #0.1 -> #0.0 Press [q] to stop, [?] for help adding 863 audio samples in stream #0.1 [mov @ 0x7f9309000c00] replacing header in front, copying 1.38MB size= 1411kB time=00:00:05.00 bitrate=2306.5kbits/s video:0kB audio:1409kB global headers:0kB muxing overhead 0.107009%
I'll attach the output files to the ticket. Perhaps the ticket should be renamed to 'support in24 audio'.
comment:5 by , 12 years ago
Summary: | -tag:[v|a] doesn't force a fourcc → support in24 audio in mov muxer |
---|
-v/atag certainly work with avi for example, so changing the title according to the suggestion
comment:6 by , 12 years ago
Not exactly sure when this was fixed, but when I now try to replicate the commands I originally posted the output is as expected.
ffmpeg -i fcp_capture2.mov -vn -acodec pcm_s24be -atag in24 in24.mov ffmpeg version 1.0.git Copyright (c) 2000-2012 the FFmpeg developers built on Dec 18 2012 23:49:10 with Apple clang version 4.1 (tags/Apple/clang-421.11.66) (based on LLVM 3.1svn) configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid --enable-ffplay libavutil 52. 12.100 / 52. 12.100 libavcodec 54. 80.100 / 54. 80.100 libavformat 54. 49.102 / 54. 49.102 libavdevice 54. 3.102 / 54. 3.102 libavfilter 3. 28.102 / 3. 28.102 libswscale 2. 1.103 / 2. 1.103 libswresample 0. 17.102 / 0. 17.102 libpostproc 52. 2.100 / 52. 2.100 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f8b5080f200] Stream #1: not enough frames to estimate rate; consider increasing probesize [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f8b5080f200] Stream #2: not enough frames to estimate rate; consider increasing probesize [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f8b5080f200] Stream #3: not enough frames to estimate rate; consider increasing probesize [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f8b5080f200] Stream #4: not enough frames to estimate rate; consider increasing probesize [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f8b5080f200] Stream #5: not enough frames to estimate rate; consider increasing probesize Guessed Channel Layout for Input Stream #0.2 : stereo Guessed Channel Layout for Input Stream #0.3 : mono Guessed Channel Layout for Input Stream #0.4 : mono Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'fcp_capture2.mov': Metadata: creation_time : 2012-11-29 21:23:35 timecode : 01:26:27;06 Duration: 00:00:00.40, start: 0.098771, bitrate: 216637 kb/s Stream #0:0(eng): Video: rawvideo (2vuy / 0x79757632), uyvy422, 720x486, 136674 kb/s, 24.41 fps, 29.97 tbr, 2997 tbn, 2997 tbc Metadata: creation_time : 2012-11-29 21:23:36 handler_name : Apple Alias Data Handler Stream #0:1(eng): Subtitle: eia_608 (c608 / 0x38303663) Metadata: creation_time : 2012-11-29 21:23:36 handler_name : Apple Alias Data Handler Stream #0:2(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, stereo, s32, 2304 kb/s Metadata: creation_time : 2012-11-29 21:23:36 handler_name : Apple Alias Data Handler Stream #0:3(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32, 1152 kb/s Metadata: creation_time : 2012-11-29 21:23:36 handler_name : Apple Alias Data Handler Stream #0:4(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, mono, s32, 1152 kb/s Metadata: creation_time : 2012-11-29 21:23:36 handler_name : Apple Alias Data Handler Stream #0:5(eng): Data: none (tmcd / 0x64636D74) Metadata: creation_time : 2012-11-29 21:23:36 handler_name : Apple Alias Data Handler timecode : 01:26:27;06 Output #0, mov, to 'in24.mov': Metadata: timecode : 01:26:27;06 encoder : Lavf54.49.102 Stream #0:0(eng): Audio: pcm_s24be (in24 / 0x34326E69), 48000 Hz, stereo, s32, 2304 kb/s Metadata: creation_time : 2012-11-29 21:23:36 handler_name : Apple Alias Data Handler Stream mapping: Stream #0:2 -> #0:0 (pcm_s24le -> pcm_s24be) Press [q] to stop, [?] for help size= 134kB time=00:00:00.57 bitrate=1916.9kbits/s video:0kB audio:133kB subtitle:0 global headers:0kB muxing overhead 0.551449%
Then read back the output
ffmpeg -i in24.mov ffmpeg version 1.0.git Copyright (c) 2000-2012 the FFmpeg developers built on Dec 18 2012 23:49:10 with Apple clang version 4.1 (tags/Apple/clang-421.11.66) (based on LLVM 3.1svn) configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid --enable-ffplay libavutil 52. 12.100 / 52. 12.100 libavcodec 54. 80.100 / 54. 80.100 libavformat 54. 49.102 / 54. 49.102 libavdevice 54. 3.102 / 54. 3.102 libavfilter 3. 28.102 / 3. 28.102 libswscale 2. 1.103 / 2. 1.103 libswresample 0. 17.102 / 0. 17.102 libpostproc 52. 2.100 / 52. 2.100 Guessed Channel Layout for Input Stream #0.0 : stereo Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'in24.mov': Metadata: major_brand : qt minor_version : 512 compatible_brands: qt encoder : Lavf54.49.102 Duration: 00:00:00.47, start: 0.098000, bitrate: 2314 kb/s Stream #0:0(eng): Audio: pcm_s24be (in24 / 0x34326E69), 48000 Hz, stereo, s32, 2304 kb/s Metadata: handler_name : DataHandler At least one output file must be specified
The result is the same if I omit the -atag in24, the output defaults to the in24 fourcc. It appears that in24 is now supported in the mov muxer.
comment:7 by , 12 years ago
Resolution: | → fixed |
---|---|
Status: | open → closed |
This was fixed in January by Michael, thank you for testing again!
(Where do you try to force a video tag?)
Does the following work-around allow to produce correct files for you, no -tag needed?