Opened 3 years ago
Closed 2 years 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 )
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)
Change History (6)
comment:1 by , 3 years ago
- We only support git master, not old versions.
- "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.
- 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?
- Obviously the first hint for you is to test a newer version and see whether the issue has already been fixed.
by , 3 years ago
Attachment: | trace_header.txt added |
---|
by , 3 years ago
Attachment: | trace_header.2.txt added |
---|
comment:2 by , 3 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.
comment:3 by , 3 years ago
Description: | modified (diff) |
---|
comment:4 by , 2 years ago
Keywords: | hevc added; h265 SEI removed |
---|---|
Resolution: | → needs_more_info |
Status: | new → closed |