#3185 closed defect (fixed)
ffprobe do not handle HEVC correctly
Reported by: | figgis | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | avcodec |
Version: | git-master | Keywords: | hevc |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | yes | |
Analyzed by developer: | no |
Description
Summary of the bug:
How to reproduce:
I encoded some frames using the HM-encoder. This is what the decoder says: $ ./TAppDecoderStatic -b foreman_352x288.hevc HM software: Decoder Version [12.1][Linux][GCC 4.7.3][64 bit] POC 0 TId: 0 ( I-SLICE, QP 32 ) [DT 0.020] [L0 ] [L1 ] [:,,,(unk)] POC 1 TId: 0 ( P-SLICE, QP 35 ) [DT 0.000] [L0 0 ] [L1 ] [:,,,(unk)] POC 2 TId: 0 ( B-SLICE, QP 34 ) [DT 0.000] [L0 1 0 ] [L1 1 0 ] [:,,,(unk)] POC 3 TId: 0 ( B-SLICE, QP 35 ) [DT 0.010] [L0 2 1 0 ] [L1 2 1 0 ] [:,,,(unk)] POC 4 TId: 0 ( B-SLICE, QP 33 ) [DT 0.010] [L0 3 2 1 0 ] [L1 3 2 1 0 ] [:,,,(unk)] Total Time: 0.040 sec. This is the output from ffprobe for the first frame: $ ./ffprobe -show_frames ~/src/jctvc-hm/bin/foreman_352x288.hevc ffprobe version N-58684-gf068aed Copyright (c) 2007-2013 the FFmpeg developers built on Nov 30 2013 23:52:44 with gcc 4.7 (Ubuntu/Linaro 4.7.3-1ubuntu1) configuration: --enable-libx264 --enable-gpl --enable-libmp3lame libavutil 52. 56.100 / 52. 56.100 libavcodec 55. 44.100 / 55. 44.100 libavformat 55. 21.102 / 55. 21.102 libavdevice 55. 5.102 / 55. 5.102 libavfilter 3. 91.100 / 3. 91.100 libswscale 2. 5.101 / 2. 5.101 libswresample 0. 17.104 / 0. 17.104 libpostproc 52. 3.100 / 52. 3.100 Input #0, hevc, from '/home/fp/src/jctvc-hm/bin/foreman_352x288.hevc': Duration: N/A, bitrate: N/A Stream #0:0: Video: hevc (Main), yuv420p(tv), 352x288, 25 fps, 25 tbr, 1200k tbn, 25 tbc [FRAME] media_type=video key_frame=1 pkt_pts=0 pkt_pts_time=0.000000 pkt_dts=0 pkt_dts_time=0.000000 pkt_duration=48000 pkt_duration_time=0.040000 pkt_pos=0 pkt_size=3695 width=352 height=288 pix_fmt=yuv420p sample_aspect_ratio=N/A pict_type=? coded_picture_number=0 display_picture_number=0 interlaced_frame=0 top_field_first=0 repeat_pict=0 [/FRAME] in the above, pict_type do not display the correct frame-type, also coded_picture_number and display_picture_number always displays as zero. HEVC reference decoder/encoder uses the slize-type do determine the type, i.e. I, P, B. Valid code in the reference decoder is Lib/TLibDecoder/TDecGop.cpp:219 Char c = (pcSlice->isIntra() ? 'I' : pcSlice->isInterP() ? 'P' : 'B'); if (!pcSlice->isReferenced()) c += 32; //-- For time output for each slice printf("\nPOC %4d TId: %1d ( %c-SLICE, QP%3d ) ", pcSlice->getPOC(), pcSlice->getTLayer(), c, pcSlice->getSliceQp() ); See e.g. table 7.7, page 77. in HEVC-standard http://www.itu.int/rec/T-REC-H.265-201304-I/en
Attachments (1)
Change History (8)
by , 11 years ago
Attachment: | foreman_352x288.hevc added |
---|
comment:1 by , 11 years ago
Version: | unspecified → git-master |
---|
comment:2 by , 11 years ago
Component: | FFprobe → avcodec |
---|---|
Keywords: | hevc added |
comment:3 by , 11 years ago
Reproduced by developer: | set |
---|---|
Resolution: | → fixed |
Status: | new → closed |
comment:4 by , 11 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
I hope it's not too daring from me to reopen a ticket, but I'm still having problems with detection of duration of H.265 files in N-63366-gf932e5f.
I have a H.265 file and FFprobe still tells me that the duration is unknown :-(
D:\UgcTestFiles\Video>ffprobe Sintel_272p_logo.265 ffprobe version N-63366-gf932e5f Copyright (c) 2007-2014 the FFmpeg developers built on May 21 2014 22:09:16 with gcc 4.8.2 (GCC) configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable -libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --ena ble-decklink --enable-zlib libavutil 52. 86.100 / 52. 86.100 libavcodec 55. 63.100 / 55. 63.100 libavformat 55. 40.100 / 55. 40.100 libavdevice 55. 13.101 / 55. 13.101 libavfilter 4. 5.100 / 4. 5.100 libswscale 2. 6.100 / 2. 6.100 libswresample 0. 19.100 / 0. 19.100 libpostproc 52. 3.100 / 52. 3.100 [hevc @ 0000000000355ba0] Unknown HEVC profile: 0 Last message repeated 3 times Input #0, hevc, from 'Sintel_272p_logo.265': Duration: N/A, bitrate: N/A Stream #0:0: Video: hevc, yuv420p(tv), 640x272, 25 fps, 25 tbr, 1200k tbn, 25 tbc [hevc @ 000000000034c960] Unknown HEVC profile: 0 Last message repeated 1 times
Download the test file form here: http://docs.voanews.eu/en-US-TEST-LTR/2014/05/22/34be68b8-b0c9-4185-9332-8bc1d85a31bb.265
comment:5 by , 11 years ago
durations are just not supported for raw video files like .h265, the same thing will most likely happen with .h264
You cannot determine the duration of a .h265 file without reading it from start to end, which it doesn't do.
comment:6 by , 11 years ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
comment:7 by , 11 years ago
Aha thanks for info,
is there any way to actually instruct ffprobe to read it from start to end to determine the duration?
hevc-binary file to show different slize-types