Opened 2 years ago

Closed 17 months ago

#9553 closed defect (needs_more_info)

raw h265 file only contains 4 user data SEI even though 6 frames were encoded

Reported by: david333 Owned by:
Priority: normal Component: avcodec
Version: unspecified Keywords: hevc
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description (last modified by david333)

I am using ffmpeg version 3.4.1 as a shared library in my project. OS version is bionic.

What I am trying to do is encode a raw HEVC file with a user data SEI message in each frame using a NVENC gpu. I am encoding the file using the ffmpeg API instead of the command line interface. The issue I am facing is when I encode 6 black frames only 4 out of the 6 encoded video frames contain user data SEI messages. It appears that the last two frames in the file are always the two frames without user data SEI. I tried doing the same thing using h264 and I had no issues, I got 6 encoded frames all containing user data SEI.

Also to note, I get two ffmpeg error messages saying "missing picture in access unit". Even if I just encode 6 black video frames without user data SEI, I still get this error message. Do you know why I might be getting this error message and what exactly it’s indicating?

I am using this command "ffmpeg -i mediaFile.hevc -c copy -bsf:v trace_headers -f null - 2>tmp_1.txt" to decode and verify all the above information.

Was this ever a known bug? If not, are there any suggestions I could try? Please let me know if I can provide any other additional information.

Attachments (2)

trace_header.txt (223.2 KB ) - added by david333 2 years ago.
trace_header.2.txt (223.2 KB ) - added by david333 2 years ago.

Download all attachments as: .zip

Change History (6)

comment:1 by mkver, 2 years ago

  1. We only support git master, not old versions.
  2. "Missing picture in access unit" means that the parser could not find a picture in an access unit; i.e. for the parser, there were only four packets with actual frames.
  3. Your description leaves a lot to be desired: Did you get this warning during the verification phase or do you use the libavcodec API to parse and decode your input that you used for encoding?
  4. Obviously the first hint for you is to test a newer version and see whether the issue has already been fixed.

by david333, 2 years ago

Attachment: trace_header.txt added

by david333, 2 years ago

Attachment: trace_header.2.txt added

comment:2 by david333, 2 years ago

I am using the libavcodec API to parse and decode my input, I also use it for my encoding. At this time I cannot upgrade the ffmpeg API. However, I might be able to use a newer ffmpeg version via the CLI. Is there a way to add SEI messages (timecodes or any type of user data) to each frame via the command line? I looked online but I have yet to find a command that will do this.

You mentioned above that the error is indicating there were only four packets with actual frames. When I look at the trace_header.txt file (attached to this ticket) I can see there are 6 packets, 6 slice segment headers and only 4 User data SEIs. Please let me know if you would like me to run any further commands on my video file in hopes of gathering more information.

Last edited 2 years ago by david333 (previous) (diff)

comment:3 by david333, 2 years ago

Description: modified (diff)

comment:4 by Carl Eugen Hoyos, 17 months ago

Keywords: hevc added; h265 SEI removed
Resolution: needs_more_info
Status: newclosed
Note: See TracTickets for help on using tickets.