Opened 7 years ago

Last modified 6 years ago

#4346 new defect

Uncompressed BGR24 AVIs are occasionally unusable

Reported by: Eric Lasota Owned by:
Priority: normal Component: undetermined
Version: unspecified Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no


Summary of the bug:
Converting to rawvideo BGR24 occasionally produces AVIs that can not be loaded by most Windows players. ffmpeg itself seems to be able to load them without issue though.

How to reproduce:

damaged_uncompressed_source.avi is the source video.
damaged_uncompressed_out.avi is the output from FFMPEG. This file will not open in MPC-HC or Windows Media Player 12.0.9600.17031. VirtualDub 1.10.4 will open it, but it will not show any video.
damaged_uncompressed_out_vdub.avi is output from opening damaged_uncompressed_source.avi and saving it as Uncompressed using VirtualDub. It plays back fine in all of the aforementioned programs.

Using -pix_fmt yuv420p instead does not cause this problem.

Using -vcodec bmp instead will allow VirtualDub to open the video, but it will be upside-down and have severe artifacts. MPC-HC and WMP will still not load it.

% ffmpeg -i damaged_uncompressed_source.avi -pix_fmt bgr24 -vcodec rawvideo -y -report damaged_uncompressed_out.avi

Report log attached.

Attachments (1)

ffmpeg-20150302-140317.log (6.2 KB ) - added by Eric Lasota 7 years ago.
Report log

Download all attachments as: .zip

Change History (5)

by Eric Lasota, 7 years ago

Attachment: ffmpeg-20150302-140317.log added

Report log

comment:1 by Eric Lasota, 7 years ago

Full console out, though it should be in the log:

D:\vids>ffmpeg\bin\ffmpeg.exe -i damaged_uncompressed_source.avi -pix_fmt bgr24
-vcodec rawvideo -y -report damaged_uncompressed_out.avi
ffmpeg started on 2015-03-02 at 20:16:40
Report written to "ffmpeg-20150302-201640.log"
ffmpeg version N-70358-g047fd98 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.9.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --
enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-lib
modplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrw
b --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinge
r --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --en
able-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis
 --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-
libx265 --enable-libxavs --enable-libxvid --enable-lzma --enable-decklink --enab
  libavutil      54. 19.100 / 54. 19.100
  libavcodec     56. 26.100 / 56. 26.100
  libavformat    56. 23.106 / 56. 23.106
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 11.102 /  5. 11.102
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
Input #0, avi, from 'damaged_uncompressed_source.avi':
  Duration: 00:00:10.07, start: 0.000000, bitrate: 673 kb/s
    Stream #0:0: Video: cinepak (cvid / 0x64697663), rgb24, 70x58, 663 kb/s, 30
fps, 30 tbr, 30 tbn, 30 tbc
Output #0, avi, to 'damaged_uncompressed_out.avi':
    ISFT            : Lavf56.23.106
    Stream #0:0: Video: rawvideo, bgr24, 70x58, q=2-31, 200 kb/s, 30 fps, 30 tbn
, 30 tbc
      encoder         : Lavc56.26.100 rawvideo
Stream mapping:
  Stream #0:0 -> #0:0 (cinepak (native) -> rawvideo (native))
Press [q] to stop, [?] for help
frame=  302 fps=0.0 q=0.0 Lsize=    3605kB time=00:00:10.06 bitrate=2933.5kbits/
video:3592kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing
overhead: 0.351515%

comment:2 by Elon Musk, 6 years ago

I can not reproduce this with VirtualDub version 1.10.4.

comment:3 by Carl Eugen Hoyos, 6 years ago

Still reproducible with WMP.
width % 4 vs. width % 2

comment:4 by Elon Musk, 6 years ago

I believe there is nothing to fix, use something better.

Note: See TracTickets for help on using tickets.