[postprocessor:ugoira] add 'repeat-last-frame' option (#1550)
This commit is contained in:
@@ -2584,6 +2584,17 @@ Description
|
|||||||
to reduce an odd width/height by 1 pixel and make them even.
|
to reduce an odd width/height by 1 pixel and make them even.
|
||||||
|
|
||||||
|
|
||||||
|
ugoira.repeat-last-frame
|
||||||
|
------------------------
|
||||||
|
Type
|
||||||
|
``bool``
|
||||||
|
Default
|
||||||
|
``true``
|
||||||
|
Description
|
||||||
|
Allow repeating the last frame when necessary
|
||||||
|
to prevent it from only being displayed for a very short amount of time.
|
||||||
|
|
||||||
|
|
||||||
zip.compression
|
zip.compression
|
||||||
---------------
|
---------------
|
||||||
Type
|
Type
|
||||||
|
|||||||
@@ -36,8 +36,11 @@ class UgoiraPP(PostProcessor):
|
|||||||
|
|
||||||
if options.get("ffmpeg-demuxer") == "concat":
|
if options.get("ffmpeg-demuxer") == "concat":
|
||||||
self._process = self._concat
|
self._process = self._concat
|
||||||
|
self.repeat = (options.get("repeat-last-frame", True) and
|
||||||
|
self.extension != "gif")
|
||||||
else:
|
else:
|
||||||
self._process = self._image2
|
self._process = self._image2
|
||||||
|
self.repeat = False
|
||||||
|
|
||||||
if options.get("libx264-prevent-odd", True):
|
if options.get("libx264-prevent-odd", True):
|
||||||
# get last video-codec argument
|
# get last video-codec argument
|
||||||
@@ -123,9 +126,7 @@ class UgoiraPP(PostProcessor):
|
|||||||
for frame in self._frames:
|
for frame in self._frames:
|
||||||
file.write("file '{}'\n".format(frame["file"]))
|
file.write("file '{}'\n".format(frame["file"]))
|
||||||
file.write("duration {}\n".format(frame["delay"] / 1000))
|
file.write("duration {}\n".format(frame["delay"] / 1000))
|
||||||
if self.extension != "gif":
|
if self.repeat:
|
||||||
# repeat the last frame to prevent it from only being
|
|
||||||
# displayed for a very short amount of time
|
|
||||||
file.write("file '{}'\n".format(frame["file"]))
|
file.write("file '{}'\n".format(frame["file"]))
|
||||||
|
|
||||||
rate_in, rate_out = self.calculate_framerate(self._frames)
|
rate_in, rate_out = self.calculate_framerate(self._frames)
|
||||||
|
|||||||
Reference in New Issue
Block a user