Opened 14 years ago
Closed 14 years ago
#1434 closed defect (fixed)
Remuxing an H.264 video from MP4 to AVI increases the size by more than 10
| Reported by: | Clément Bœsch | Owned by: | |
|---|---|---|---|
| Priority: | important | Component: | undetermined |
| Version: | git-master | Keywords: | mov avi remux regression |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | yes | |
| Analyzed by developer: | no |
Description
Command line:
./ffmpeg -report -i remux-me-to-avi.mp4 -an -c copy -y out.avi
ffmpeg version N-41456-g94632db Copyright (c) 2000-2012 the FFmpeg developers
built on Jun 9 2012 20:46:46 with gcc 4.7.0 20120505 (prerelease)
configuration: --enable-gpl --enable-fontconfig --enable-libfreetype --enable-libmp3lame --enable-libvorbis --enable-libxvid --enable-libx264 --enable-libvpx --enable-libtheora --enable-x11grab --enable-libopenjpeg --enable-libass --enable-libmodplug --cc='ccache colorgcc' --samples=/home/ubitux/fate-samples --prefix=/tmp/ffinstall
libavutil 51. 56.100 / 51. 56.100
libavcodec 54. 25.100 / 54. 25.100
libavformat 54. 6.101 / 54. 6.101
libavdevice 54. 0.100 / 54. 0.100
libavfilter 2. 78.101 / 2. 78.101
libswscale 2. 1.100 / 2. 1.100
libswresample 0. 15.100 / 0. 15.100
libpostproc 52. 0.100 / 52. 0.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x33fcd20] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x33fcd20] ISO: File Type Major Brand: isom
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x33fcd20] File position before avformat_find_stream_info() is 4023420
[h264 @ 0x34034e0] no picture
[h264 @ 0x34034e0] no picture
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x33fcd20] All info found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x33fcd20] File position after avformat_find_stream_info() is 258968
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'remux-me-to-avi.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
creation_time : 2012-06-09 13:19:34
encoder : Lavf54.6.100
Duration: 00:00:20.16, start: 0.000000, bitrate: 1596 kb/s
Stream #0:0(und), 21, 1/90000: Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 708x566 [SAR 64:45 DAR 7552:4245], 1432 kb/s, 24.80 fps, 25 tbr, 90k tbn, 180k tbc
Metadata:
creation_time : 2012-06-09 13:19:34
handler_name : VideoHandler
Stream #0:1(und), 38, 1/48000: Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, s16, 159 kb/s
Metadata:
creation_time : 2012-06-09 13:19:34
handler_name : SoundHandler
Output #0, avi, to 'out.avi':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
creation_time : 2012-06-09 13:19:34
ISFT : Lavf54.6.101
Stream #0:0(und), 0, 1/90000: Video: h264 (avc1 / 0x31637661), yuv420p, 708x566 [SAR 64:45 DAR 7552:4245], q=2-31, 1432 kb/s, 24.80 fps, 90k tbn, 90k tbc
Metadata:
creation_time : 2012-06-09 13:19:34
handler_name : VideoHandler
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
frame= 500 fps=212 q=-1.0 Lsize= 45633kB time=00:00:19.96 bitrate=18728.8kbits/s
video:3524kB audio:0kB global headers:0kB muxing overhead 1194.850083%
% ls -l out.avi remux-me-to-avi.mp4 -rw-r--r-- 1 ubitux ubitux 45M Jun 9 21:01 out.avi -rw-r--r-- 1 ubitux ubitux 3.9M Jun 9 20:47 remux-me-to-avi.mp4
Change History (7)
comment:1 by , 14 years ago
follow-up: 3 comment:2 by , 14 years ago
| Keywords: | mov regression added; mp4 size removed |
|---|---|
| Priority: | normal → important |
| Reproduced by developer: | set |
| Status: | new → open |
| Version: | unspecified → git-master |
At least for the following command this is a regression (the original command line produces a file that does not play properly also with an old version of FFmpeg, this command line also produces a file with increased size with current git head, but works fine with an old version):
$ ffmpeg -i out.mp4 -vcodec copy -acodec mp2 out.avi
ffmpeg version N-41413-gb35d38b Copyright (c) 2000-2012 the FFmpeg developers
built on Jun 8 2012 19:40:05 with gcc 4.3.2
configuration: --cc=/usr/local/gcc-4.3.2/bin/gcc --enable-gpl --enable-libopenjpeg --enable-libvorbis --enable-libspeex --enable-libmp3lame --enable-libtheora --extra-ldflags=-lm --enable-libvpx --enable-libxavs
libavutil 51. 56.100 / 51. 56.100
libavcodec 54. 25.100 / 54. 25.100
libavformat 54. 6.101 / 54. 6.101
libavdevice 54. 0.100 / 54. 0.100
libavfilter 2. 78.101 / 2. 78.101
libswscale 2. 1.100 / 2. 1.100
libswresample 0. 15.100 / 0. 15.100
libpostproc 52. 0.100 / 52. 0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'out.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
creation_time : 2012-06-09 13:19:34
encoder : Lavf54.6.100
Duration: 00:00:20.16, start: 0.000000, bitrate: 1596 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 708x566 [SAR 64:45 DAR 7552:4245], 1432 kb/s, 24.80 fps, 25 tbr, 90k tbn, 180k tbc
Metadata:
creation_time : 2012-06-09 13:19:34
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, s16, 159 kb/s
Metadata:
creation_time : 2012-06-09 13:19:34
handler_name : SoundHandler
Output #0, avi, to 'out.avi':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
creation_time : 2012-06-09 13:19:34
ISFT : Lavf54.6.101
Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p, 708x566 [SAR 64:45 DAR 7552:4245], q=2-31, 1432 kb/s, 24.80 fps, 90k tbn, 90k tbc
Metadata:
creation_time : 2012-06-09 13:19:34
handler_name : VideoHandler
Stream #0:1(und): Audio: mp2 (P[0][0][0] / 0x0050), 48000 Hz, stereo, s16, 128 kb/s
Metadata:
creation_time : 2012-06-09 13:19:34
handler_name : SoundHandler
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (aac -> mp2)
Press [q] to stop, [?] for help
frame= 500 fps=113 q=-1.0 Lsize= 45970kB time=00:00:19.96 bitrate=18866.9kbits/s
video:3524kB audio:313kB global headers:0kB muxing overhead 1098.075719%
comment:3 by , 14 years ago
Replying to cehoyos:
At least for the following command this is a regression (the original command line produces a file that does not play properly also with an old version of FFmpeg, this command line also produces a file with increased size with current git head, but works fine with an old version):
please elaborate what does work better with which old version
comment:4 by , 14 years ago
You can override the frame rate with -r 25 after my next push which will make the file normally sized
comment:5 by , 14 years ago
out05.avi plays fine MPlayer, ffplay and vlc, outgit.avi seems broken for all players.
$ ffmpeg -i out.mp4 -vcodec copy -acodec mp2 out05.avi
FFmpeg version 0.5, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration: --shlibdir=/usr/lib --prefix=/usr --mandir=/usr/share/man --libdir=/usr/lib --enable-shared --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libspeex --enable-libfaad --enable-libfaac --enable-libxvid --enable-swscale --enable-postproc --enable-gpl --enable-vhook --enable-x11grab --enable-libschroedinger --enable-libdirac --enable-libgsm --enable-libx264 --enable-libamr-nb --enable-libamr-wb --enable-libdc1394 --enable-nonfree --enable-pthreads --enable-vdpau
libavutil 49.15. 0 / 49.15. 0
libavcodec 52.20. 0 / 52.20. 0
libavformat 52.31. 0 / 52.31. 0
libavdevice 52. 1. 0 / 52. 1. 0
libswscale 0. 7. 1 / 0. 7. 1
libpostproc 51. 2. 0 / 51. 2. 0
built on May 14 2009 12:56:28, gcc: 4.2.1 (SUSE Linux)
Seems stream 0 codec frame rate differs from container frame rate: 50.00 (50/1) -> 25.00 (25/1)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'out.mp4':
Duration: 00:00:20.16, start: 0.000000, bitrate: 1596 kb/s
Stream #0.0(und): Video: h264, yuv420p, 708x566, PAR 64:45 DAR 7552:4245, 25 tbr, 25 tbn, 50 tbc
Stream #0.1(und): Audio: aac, 48000 Hz, stereo, s16
Output #0, avi, to 'out05.avi':
Stream #0.0(und): Video: libx264, yuv420p, 708x566 [PAR 64:45 DAR 7552:4245], q=2-31, 90k tbn, 25 tbc
Stream #0.1(und): Audio: mp2, 48000 Hz, stereo, s16, 64 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
Press [q] to stop encoding
frame= 500 fps= 0 q=-1.0 Lsize= 3722kB time=19.97 bitrate=1526.8kbits/s
video:3524kB audio:156kB global headers:0kB muxing overhead 1.122238%
$ ffmpeg -i out.mp4 -vcodec copy -acodec mp2 outgit.avi
ffmpeg version N-41509-g20e46aa Copyright (c) 2000-2012 the FFmpeg developers
built on Jun 11 2012 09:15:19 with gcc 4.3.2
configuration: --cc=/usr/local/gcc-4.3.2/bin/gcc --enable-gpl --enable-libopenjpeg --enable-libvorbis --enable-libspeex --enable-libmp3lame --enable-libtheora --extra-ldflags=-lm --enable-libvpx --enable-libxavs
libavutil 51. 57.100 / 51. 57.100
libavcodec 54. 25.100 / 54. 25.100
libavformat 54. 6.101 / 54. 6.101
libavdevice 54. 0.100 / 54. 0.100
libavfilter 2. 78.101 / 2. 78.101
libswscale 2. 1.100 / 2. 1.100
libswresample 0. 15.100 / 0. 15.100
libpostproc 52. 0.100 / 52. 0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'out.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
creation_time : 2012-06-09 13:19:34
encoder : Lavf54.6.100
Duration: 00:00:20.16, start: 0.000000, bitrate: 1596 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 708x566 [SAR 64:45 DAR 7552:4245], 1432 kb/s, 24.80 fps, 25 tbr, 90k tbn, 180k tbc
Metadata:
creation_time : 2012-06-09 13:19:34
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, s16, 159 kb/s
Metadata:
creation_time : 2012-06-09 13:19:34
handler_name : SoundHandler
Output #0, avi, to 'outgit.avi':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
creation_time : 2012-06-09 13:19:34
ISFT : Lavf54.6.101
Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p, 708x566 [SAR 64:45 DAR 7552:4245], q=2-31, 1432 kb/s, 24.80 fps, 90k tbn, 90k tbc
Metadata:
creation_time : 2012-06-09 13:19:34
handler_name : VideoHandler
Stream #0:1(und): Audio: mp2 (P[0][0][0] / 0x0050), 48000 Hz, stereo, s16, 128 kb/s
Metadata:
creation_time : 2012-06-09 13:19:34
handler_name : SoundHandler
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (aac -> mp2)
Press [q] to stop, [?] for help
frame= 500 fps= 98 q=-1.0 Lsize= 45970kB time=00:00:19.96 bitrate=18866.9kbits/s
video:3524kB audio:313kB global headers:0kB muxing overhead 1098.075719%
comment:6 by , 14 years ago
The size increase is a regression since r19148 / bbe46bc
The playback regression is only reproducible with mplayer -demuxer avi, mplayer -demuxer lavf plays the large file fine.
comment:7 by , 14 years ago
| Resolution: | → fixed |
|---|---|
| Status: | open → closed |



The input file is available here: http://ompldr.org/iZTdpbg