Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#6400 closed defect (fixed)

Canopus HQA video stream is truncated on decode

Reported by: Terran Vigil Owned by:
Priority: important Component: avformat
Version: git-master Keywords: avi regression
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Summary of the bug:

When decoding the video stream only (-an) from a Canopus HQA source, I'm seeing the decode exit without error after decoding only the first 27209 of 43756 frames. However, if both audio and video streams are decoded, the full 43756 video frames are decoded. The source is a 25GB AVI/RIFF so uses multiple RIFF chunks per the AVI extension to go beyond 4GB. Interestingly, the RIFF chunk at approximately 16GB starts on frame 26920 AND it also appears that the last 10 seconds of video decoded are *from the end* of the video stream, as if it is skipping to 10 seconds before the end.

Decodes full video stream:

[~] ffmpeg -i ~/video/tooshort.avi -f null -
ffmpeg version git-2017-05-17-b7b02ae Copyright (c) 2000-2017 the FFmpeg developers
  built with Apple LLVM version 8.1.0 (clang-802.0.42)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD-b7b02ae --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --disable-lzma --enable-vda
  libavutil      55. 63.100 / 55. 63.100
  libavcodec     57. 96.101 / 57. 96.101
  libavformat    57. 72.101 / 57. 72.101
  libavdevice    57.  7.100 / 57.  7.100
  libavfilter     6. 90.100 /  6. 90.100
  libavresample   3.  6.  0 /  3.  6.  0
  libswscale      4.  7.101 /  4.  7.101
  libswresample   2.  8.100 /  2.  8.100
  libpostproc    54.  6.100 / 54.  6.100
Guessed Channel Layout for Input Stream #0.1 : stereo
Input #0, avi, from '/Users/tvigil/video/tooshort.avi':
  Duration: 00:24:19.99, start: 0.000000, bitrate: 144837 kb/s
    Stream #0:0: Video: hq_hqa (CUVC / 0x43565543), yuv422p(top first), 1920x1080 [SAR 1:1 DAR 16:9], 143299 kb/s, 29.97 fps, 29.97 tbr, 29.97 tbn, 29.97 tbc
    Stream #0:1: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, stereo, s16, 1536 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (hq_hqa (native) -> wrapped_avframe (native))
  Stream #0:1 -> #0:1 (pcm_s16le (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, null, to 'pipe:':
  Metadata:
    encoder         : Lavf57.72.101
    Stream #0:0: Video: wrapped_avframe, yuv422p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc
    Metadata:
      encoder         : Lavc57.96.101 wrapped_avframe
    Stream #0:1: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
    Metadata:
      encoder         : Lavc57.96.101 pcm_s16le
frame=43756 fps= 59 q=-0.0 Lsize=N/A time=00:24:19.99 bitrate=N/A speed=1.98x    
video:22562kB audio:273748kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

Decodes partial video stream:

[~] ffmpeg -i ~/video/tooshort.avi -an -f null -
ffmpeg version git-2017-05-17-b7b02ae Copyright (c) 2000-2017 the FFmpeg developers
  built with Apple LLVM version 8.1.0 (clang-802.0.42)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD-b7b02ae --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --disable-lzma --enable-vda
  libavutil      55. 63.100 / 55. 63.100
  libavcodec     57. 96.101 / 57. 96.101
  libavformat    57. 72.101 / 57. 72.101
  libavdevice    57.  7.100 / 57.  7.100
  libavfilter     6. 90.100 /  6. 90.100
  libavresample   3.  6.  0 /  3.  6.  0
  libswscale      4.  7.101 /  4.  7.101
  libswresample   2.  8.100 /  2.  8.100
  libpostproc    54.  6.100 / 54.  6.100
Guessed Channel Layout for Input Stream #0.1 : stereo
Input #0, avi, from '/Users/tvigil/video/tooshort.avi':
  Duration: 00:24:19.99, start: 0.000000, bitrate: 144837 kb/s
    Stream #0:0: Video: hq_hqa (CUVC / 0x43565543), yuv422p(top first), 1920x1080 [SAR 1:1 DAR 16:9], 143299 kb/s, 29.97 fps, 29.97 tbr, 29.97 tbn, 29.97 tbc
    Stream #0:1: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, stereo, s16, 1536 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (hq_hqa (native) -> wrapped_avframe (native))
Press [q] to stop, [?] for help
Output #0, null, to 'pipe:':
  Metadata:
    encoder         : Lavf57.72.101
    Stream #0:0: Video: wrapped_avframe, yuv422p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc
    Metadata:
      encoder         : Lavc57.96.101 wrapped_avframe
frame=27209 fps= 59 q=-0.0 Lsize=N/A time=00:15:07.87 bitrate=N/A speed=1.95x    
video:14030kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

Change History (6)

comment:1 by Terran Vigil, 7 years ago

Attempting to upload source through ftp but anonymous connect is failing. Using http://streams.videolan.org and upload progressing very slowly. File is canopus_truncated.avi.

comment:2 by Carl Eugen Hoyos, 7 years ago

Keywords: avi added

Unfortunately, no file with "canopus" in its name can be found in videolan's incoming directory: Could you try again?

comment:3 by Terran Vigil, 7 years ago

Resending but I don't get any progress back from https://streams.videolan.org/upload/. The FTP host also appears to still be down.

comment:4 by Carl Eugen Hoyos, 7 years ago

I wonder if it is possible to upload 16G via http put - possibly not. If you have another upload possibility, feel free to email me at ceffmpeg at gmail dot com.

comment:5 by Carl Eugen Hoyos, 7 years ago

Component: undeterminedavformat
Keywords: regression added
Priority: normalimportant
Reproduced by developer: set
Resolution: fixed
Status: newclosed

Sorry for this week's email, I had already downloaded the file two months ago...

Regression since ef8cc06d, fixed in 511e10f6

comment:6 by Terran Vigil, 7 years ago

Appreciated!

Note: See TracTickets for help on using tickets.