[FFmpeg-trac] #8126(avcodec:new): When I play a mkv(video:avc/audio:flac) not from the begining, it blurred.
FFmpeg
trac at avcodec.org
Mon Sep 9 15:47:11 EEST 2019
#8126: When I play a mkv(video:avc/audio:flac) not from the begining,it blurred.
-------------------------------------+-----------------------------------
Reporter: WillFarmer | Owner:
Type: enhancement | Status: new
Priority: wish | Component: avcodec
Version: git-master | Resolution:
Keywords: h264, x264 | Blocked By:
Blocking: | Reproduced by developer: 1
Analyzed by developer: 1 |
-------------------------------------+-----------------------------------
Changes (by mkver):
* reproduced: 0 => 1
* component: undetermined => avcodec
* priority: normal => wish
* keywords: => h264, x264
* version: unspecified => git-master
* analyzed: 0 => 1
* type: defect => enhancement
Comment:
This file has been created by an old version of x264 (and apparently even
a modded version: x264 core 148 r2744+45 a477af1 7mod [10-bit at all X86_64])
and such old versions could produce spec-incompliant files when 4:4:4 mode
was used and 8x8dct was set to 1. For some time, FFmpeg's decoder was
spec-incompliant, too, and essentially covered up for x264. But this has
been changed and spec-compliant decoding is now the default. But if an SEI
is encountered that indicates that this file has been produced by an old
and buggy x264, then the old spec-incompliant decoding mode is used. Your
file contains such an SEI in the very first frame (which contains the
aforementioned x264 version and the encoding parameters used), so if you
start decoding from the beginning, everything seems fine. But if you start
decoding somewhere else, the file won't be properly decodable, unless you
explicitly set the x264 build using the x264_build option.
At the moment, there is only one thing you can do: Encode the video
(either from the beginning or with the x264_build option) again with a
recent version of x264. If you have the source of said file, this is
viable. It would also make sense if your video were losslessly coded, but
it isn't. Losslessly reencoding the video as is will unfortunately make it
much bigger and reencoding the video in a lossy way is lossy, of course.
But there is one thing that could be implemented for a scenario as this:
Add an option to (say) h264_metadata to insert the x264 SEI into every
keyframe. I have changed this topic to a request to implement this.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/8126#comment:9>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list