[FFmpeg-user] Size of 10-bit 4:2:2 video streams?

Olivier Bruchez olivier.bruchez at epfl.ch
Wed Sep 21 10:36:43 EEST 2022


Hi Marc,

Thanks for your answer.

>> /So I made some further tests and discovered that my original AVI 
>> file is />/simply corrupted. It's supposed to have 88 minutes of 
>> video, but it fails />/after 38 minutes. /
> What does "fails" mean? The player stops? Which player? The video goes 
> black
> but playing continues? Please be specific.

ffmpeg (a very recent version - or any version) will stop copying the 
stream after 00:38:50.12 (instead of 01:28:00.80):

ffmpeg -i test.avi -c copy test.copy.avi
ffmpeg version N-63101-gc92edd969a-static 
https://johnvansickle.com/ffmpeg/  Copyright (c) 2000-2022 the FFmpeg 
developers
   built with gcc 8 (Debian 8.3.0-6)
   configuration: --enable-gpl --enable-version3 --enable-static 
--disable-debug --disable-ffplay --disable-indev=sndio 
--disable-outdev=sndio --cc=gcc --enable-fontconfig --enable-frei0r 
--enable-gnutls --enable-gmp --enable-libgme --enable-gray 
--enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf 
--enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb 
--enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband 
--enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis 
--enable-libopus --enable-libtheora --enable-libvidstab 
--enable-libvo-amrwbenc --enable-libvpx --enable-libwebp 
--enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d 
--enable-libxvid --enable-libzvbi --enable-libzimg
   libavutil      57. 36.101 / 57. 36.101
   libavcodec     59. 42.104 / 59. 42.104
   libavformat    59. 30.101 / 59. 30.101
   libavdevice    59.  8.101 / 59.  8.101
   libavfilter     8. 48.100 /  8. 48.100
   libswscale      6.  8.108 /  6.  8.108
   libswresample   4.  9.100 /  4.  9.100
   libpostproc    56.  7.100 / 56.  7.100
[avi @ 0x653e900] non-interleaved AVI
Input #0, avi, from 'test.avi':
   Duration: 01:28:00.80, start: 0.000000, bitrate: 221185 kb/s
   Stream #0:0: Video: v210 (v210 / 0x30313276), yuv422p10le, 720x576, 
25 fps, 25 tbr, 25 tbn
Output #0, avi, to 'test.copy.avi':
   Metadata:
     ISFT            : Lavf59.30.101
   Stream #0:0: Video: v210 (v210 / 0x30313276), yuv422p10le, 720x576, 
q=2-31, 25 fps, 25 tbr, 25 tbn
Stream mapping:
   Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
frame=58254 fps=128 q=-1.0 Lsize=62915254kB time=00:38:50.12 
bitrate=221191.1kbits/s speed=5.12x
video:62914320kB audio:0kB subtitle:0kB other streams:0kB global 
headers:0kB muxing overhead: 0.001485%

The exit code is zero:

echo $?
0

test.avi is still the 146-GB file I mentioned originally.

> You may want to try multiple players to see what's in the file and 
> look at
> it with ffprobe and mediainfo. Also try encoding into a different format
> which will force ffmpeg to demux/decode the frames; that might turn up
> something.

Here are a few things I've tried:

- I've checked other AVI files in our archive coming from the same 
company. They "behave" as expected, i.e. they indeed contain about 1.5 
GB per minute of video stream (SD video) and can be copied or transcoded 
from beginning to end. No problem there. I've only found one single 
problematic file.

- Play the problematic file with VLC. It stops the playback after 38 
minutes as well and doesn't even display the full duration of the file 
(01:28:00).

- Examine it with mediainfo (full log here 
https://drive.google.com/drive/folders/1h2GxriHtvx86jxcpN41GKmJBURGO3y6P?usp=sharing). 
mediainfo says the duration is 01:28:00.800, but the "source duration" 
is 00:00:38.840 (not 38 minutes, but 38 seconds, which is weird!).

- Transcode the AVI to MKV/H.264 (full command line available, but 
pretty standard). The resulting MKV file has a duration of 38 minutes 
only and can be played without any problem. Actually, I think I can do 
pretty much anything with the problematic AVI file using ffmpeg. It will 
just see it as a normal 38-minute file.

- Examine the file with ffprobe (ffprobe -hide_banner -select_streams 
v:0 -show_frames). The full output log is available at the same location 
as the mediainfo output. I get information for 58254 frames, so about 38 
minutes of video.

Thanks,

Olivier



More information about the ffmpeg-user mailing list