jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/332066 )

Change subject: Cap .ogv transcode frame rate to 60 fps (1000 fps bug)
......................................................................


Cap .ogv transcode frame rate to 60 fps (1000 fps bug)

ffmpeg sometimes reports that WebM source videos are at 1000 fps
which ffmpeg2theora dutifully tries to process output for, creating
many duplicate frames.

This causes playback troubles, poorer compression, and much larger
encoding times, and is generally annoying as heck.

As a workaround, cap ffmpeg2theora's .ogv output to 60fps, which is
the highest actual frame rate we see in the wild. Along with the
'noUpscaling' option we already use this will not inflate files that
have a correct frame rate.

This will still create dupe frames on input that's really 30 fps or
whatever, but a LOT less. :)

Bug: T135671
Change-Id: Ie58aed3a3884fde9353c33233da400b8c0d35bad
---
M WebVideoTranscode/WebVideoTranscode.php
1 file changed, 11 insertions(+), 6 deletions(-)

Approvals:
  Paladox: Looks good to me, but someone else must approve
  jenkins-bot: Verified
  TheDJ: Looks good to me, approved



diff --git a/WebVideoTranscode/WebVideoTranscode.php 
b/WebVideoTranscode/WebVideoTranscode.php
index eaccdb9..c1b8d1c 100644
--- a/WebVideoTranscode/WebVideoTranscode.php
+++ b/WebVideoTranscode/WebVideoTranscode.php
@@ -88,7 +88,7 @@
                                'framerate'                  => '15',
                                'audioQuality'               => '-1',
                                'channels'                   => '2',
-                               'noUpscaling'                => 'true',
+                               'noUpscaling'                => 'true', // also 
caps to source frame rate
                                'twopass'                    => 'false', // 
will be overridden by $wgTmhTheoraTwoPassEncoding
                                'optimize'                   => 'true',
                                'keyframeInterval'           => '128',
@@ -100,9 +100,10 @@
                        [
                                'maxSize'                    => '426x240',
                                'videoBitrate'               => '512',
+                               'framerate'                  => '60', // max to 
reduce "1000fps bug" problems
                                'audioQuality'               => '0',
                                'channels'                   => '2',
-                               'noUpscaling'                => 'true',
+                               'noUpscaling'                => 'true', // also 
caps to source frame rate
                                'twopass'                    => 'false', // 
will be overridden by $wgTmhTheoraTwoPassEncoding
                                'optimize'                   => 'true',
                                'keyframeInterval'           => '128',
@@ -114,9 +115,10 @@
                        [
                                'maxSize'                    => '640x360',
                                'videoBitrate'               => '1024',
+                               'framerate'                  => '60', // max to 
reduce "1000fps bug" problems
                                'audioQuality'               => '1',
                                'channels'                   => '2',
-                               'noUpscaling'                => 'true',
+                               'noUpscaling'                => 'true', // also 
caps to source frame rate
                                'twopass'                    => 'false', // 
will be overridden by $wgTmhTheoraTwoPassEncoding
                                'optimize'                   => 'true',
                                'keyframeInterval'           => '128',
@@ -128,9 +130,10 @@
                        [
                                'maxSize'                    => '854x480',
                                'videoBitrate'               => '2048',
+                               'framerate'                  => '60', // max to 
reduce "1000fps bug" problems
                                'audioQuality'               => '2',
                                'channels'                   => '2',
-                               'noUpscaling'                => 'true',
+                               'noUpscaling'                => 'true', // also 
caps to source frame rate
                                'twopass'                    => 'false', // 
will be overridden by $wgTmhTheoraTwoPassEncoding
                                'optimize'                   => 'true',
                                'keyframeInterval'           => '128',
@@ -143,8 +146,9 @@
                        [
                                'maxSize'                    => '1280x720',
                                'videoQuality'               => 6,
+                               'framerate'                  => '60', // max to 
reduce "1000fps bug" problems
                                'audioQuality'               => 3,
-                               'noUpscaling'                => 'true',
+                               'noUpscaling'                => 'true', // also 
caps to source frame rate
                                'twopass'                    => 'false', // 
will be overridden by $wgTmhTheoraTwoPassEncoding
                                'optimize'                   => 'true',
                                'keyframeInterval'           => '128',
@@ -156,8 +160,9 @@
                        [
                                'maxSize'                    => '1920x1080',
                                'videoQuality'               => 6,
+                               'framerate'                  => '60', // max to 
reduce "1000fps bug" problems
                                'audioQuality'               => 3,
-                               'noUpscaling'                => 'true',
+                               'noUpscaling'                => 'true', // also 
caps to source frame rate
                                'twopass'                    => 'false', // 
will be overridden by $wgTmhTheoraTwoPassEncoding
                                'optimize'                   => 'true',
                                'keyframeInterval'           => '128',

-- 
To view, visit https://gerrit.wikimedia.org/r/332066
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ie58aed3a3884fde9353c33233da400b8c0d35bad
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/TimedMediaHandler
Gerrit-Branch: master
Gerrit-Owner: Brion VIBBER <br...@wikimedia.org>
Gerrit-Reviewer: Chad <ch...@wikimedia.org>
Gerrit-Reviewer: Legoktm <lego...@member.fsf.org>
Gerrit-Reviewer: Paladox <thomasmulhall...@yahoo.com>
Gerrit-Reviewer: Reedy <re...@wikimedia.org>
Gerrit-Reviewer: TheDJ <hartman.w...@gmail.com>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to