[FFmpeg-trac] #11425(avformat:new): 5813e5a (fix for hevc regression from a696b28) has not been backported to 7.1

FFmpeg trac at avcodec.org
Tue Jan 21 02:08:48 EET 2025


#11425: 5813e5a (fix for hevc regression from a696b28) has not been backported to
7.1
-------------------------------------+-------------------------------------
             Reporter:  Sebastian    |                     Type:  defect
  Meyer                              |
               Status:  new          |                 Priority:  normal
            Component:  avformat     |                  Version:  7.1
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 **Summary of the bug:**
 See
 https://github.com/streamlink/streamlink/issues/6410#issuecomment-2603369602

 The Streamlink project implements a DASH client in Python and uses FFmpeg
 to remux the resulting video/audio streams into its output.

 In the linked thread above, a user ran into an issue with FFmpeg `n7.1`
 that doesn't occur on `n7.0` or recent builds from `master`.

 After running `git bisect start 'n7.1' 'n7.0.2'` and rebuilding FFmpeg, I
 found commit a696b288861a09403e316f4eb33bbc7cb6c03e5c to be the culprit.
 And after checking the master branch, I found that commit
 5813e5aa344b8c03c83bf62e729be0f447944ed1 already fixed the regression
 introduced by the other commit.

 However, the fix was never backported to the `release/7.1` branch:
 https://git.ffmpeg.org/gitweb/ffmpeg.git/history/refs/heads/release/7.1:/libavformat/hevc.c

 I'm therefore asking for a quick backport. Thank you!

 Also, since I'm not aware, what's the patch release policy of FFmpeg? Will
 there be another patch release (`n7.0.3`), or do we have to wait for
 `n7.2`/`n8.0` to be released? Thanks.

 **How to reproduce:**
 The user who reported the issue has shared the video file here:
 https://drive.google.com/file/d/1g87o8wA0mwvgRNTrwTM36o-
 4ZnJIEMIv/view?usp=sharing

 Bad commit (`a696b288861a09403e316f4eb33bbc7cb6c03e5c`):
 {{{
 $ ./ffmpeg-N-116167-ga696b28886-linux64-gpl-7.0/bin/ffmpeg -hide_banner -i
 video.mp4 -c copy -y video.mkv
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
   Metadata:
     major_brand     : iso9
     minor_version   : 0
     compatible_brands: iso9avc1cmf2cmfcdashclg1
     creation_time   : 2024-05-29T15:34:35.000000Z
   Duration: 482612:01:28.00, start: 1737403256.020000, bitrate: N/A
   Stream #0:0[0x1](und): Video: hevc (Main 10) (hev1 / 0x31766568),
 yuv420p10le(tv, bt2020nc/bt2020/arib-std-b67), 3840x2160 [SAR 1:1 DAR
 16:9], 24007 kb/s, 50 fps, 50 tbr, 200 tbn (default)
       Metadata:
         creation_time   : 2024-05-29T15:34:35.000000Z
         handler_name    : BBC Video
         vendor_id       : [0][0][0][0]
         encoder         : HEVC Coding
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
 [out#0/matroska @ 0x5e6173ef4100] Could not write header (incorrect codec
 parameters ?): Invalid data found when processing input
 Conversion failed!
 }}}

 Good commit (`a696b288861a09403e316f4eb33bbc7cb6c03e5c~1` or current HEAD
 of `master`):
 {{{
 $ ./ffmpeg-N-116166-g46f7ea4456-linux64-gpl-7.0/bin/ffmpeg -hide_banner -i
 video.mp4 -c copy -y video.mkv
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
   Metadata:
     major_brand     : iso9
     minor_version   : 0
     compatible_brands: iso9avc1cmf2cmfcdashclg1
     creation_time   : 2024-05-29T15:34:35.000000Z
   Duration: 482612:01:28.00, start: 1737403256.020000, bitrate: N/A
   Stream #0:0[0x1](und): Video: hevc (Main 10) (hev1 / 0x31766568),
 yuv420p10le(tv, bt2020nc/bt2020/arib-std-b67), 3840x2160 [SAR 1:1 DAR
 16:9], 24007 kb/s, 50 fps, 50 tbr, 200 tbn (default)
       Metadata:
         creation_time   : 2024-05-29T15:34:35.000000Z
         handler_name    : BBC Video
         vendor_id       : [0][0][0][0]
         encoder         : HEVC Coding
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
 Output #0, matroska, to 'video.mkv':
   Metadata:
     major_brand     : iso9
     minor_version   : 0
     compatible_brands: iso9avc1cmf2cmfcdashclg1
     encoder         : Lavf61.5.100
   Stream #0:0(und): Video: hevc (Main 10) (hev1 / 0x31766568),
 yuv420p10le(tv, bt2020nc/bt2020/arib-std-b67), 3840x2160 [SAR 1:1 DAR
 16:9], q=2-31, 24007 kb/s, 50 fps, 50 tbr, 1k tbn (default)
       Metadata:
         creation_time   : 2024-05-29T15:34:35.000000Z
         handler_name    : BBC Video
         vendor_id       : [0][0][0][0]
         encoder         : HEVC Coding
 Press [q] to stop, [?] for help
 [out#0/matroska @ 0x5cb72bda8100] video:93778KiB audio:0KiB subtitle:0KiB
 other streams:0KiB global headers:0KiB muxing overhead: 0.032008%
 size=   93808KiB time=00:00:31.96 bitrate=24041.2kbits/s speed= 184x
 }}}

 container + stream data:

 {{{
 $ ffprobe -v error -of json -show_format -show_streams video.mp4 | jq
 {
   "streams": [
     {
       "index": 0,
       "codec_name": "hevc",
       "codec_long_name": "H.265 / HEVC (High Efficiency Video Coding)",
       "profile": "Main 10",
       "codec_type": "video",
       "codec_tag_string": "hev1",
       "codec_tag": "0x31766568",
       "width": 3840,
       "height": 2160,
       "coded_width": 3840,
       "coded_height": 2160,
       "closed_captions": 0,
       "film_grain": 0,
       "has_b_frames": 1,
       "sample_aspect_ratio": "1:1",
       "display_aspect_ratio": "16:9",
       "pix_fmt": "yuv420p10le",
       "level": 153,
       "color_range": "tv",
       "color_space": "bt2020nc",
       "color_transfer": "arib-std-b67",
       "color_primaries": "bt2020",
       "chroma_location": "topleft",
       "refs": 1,
       "view_ids_available": "",
       "view_pos_available": "",
       "id": "0x1",
       "r_frame_rate": "50/1",
       "avg_frame_rate": "50/1",
       "time_base": "1/200",
       "start_pts": 347480651204,
       "start_time": "1737403256.020000",
       "duration_ts": 347480657600,
       "duration": "1737403288.000000",
       "bit_rate": "24007198",
       "extradata_size": 23,
       "disposition": {
         "default": 1,
         "dub": 0,
         "original": 0,
         "comment": 0,
         "lyrics": 0,
         "karaoke": 0,
         "forced": 0,
         "hearing_impaired": 0,
         "visual_impaired": 0,
         "clean_effects": 0,
         "attached_pic": 0,
         "timed_thumbnails": 0,
         "non_diegetic": 0,
         "captions": 0,
         "descriptions": 0,
         "metadata": 0,
         "dependent": 0,
         "still_image": 0,
         "multilayer": 0
       },
       "tags": {
         "creation_time": "2024-05-29T15:34:35.000000Z",
         "language": "und",
         "handler_name": "BBC Video",
         "vendor_id": "[0][0][0][0]",
         "encoder": "HEVC Coding"
       }
     }
   ],
   "format": {
     "filename": "video.mp4",
     "nb_streams": 1,
     "nb_programs": 0,
     "nb_stream_groups": 0,
     "format_name": "mov,mp4,m4a,3gp,3g2,mj2",
     "format_long_name": "QuickTime / MOV",
     "start_time": "1737403256.020000",
     "duration": "1737403288.000000",
     "size": "96049545",
     "probe_score": 100,
     "tags": {
       "major_brand": "iso9",
       "minor_version": "0",
       "compatible_brands": "iso9avc1cmf2cmfcdashclg1",
       "creation_time": "2024-05-29T15:34:35.000000Z"
     }
   }
 }
 }}}
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/11425>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list