-
Notifications
You must be signed in to change notification settings - Fork 22
-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
support dynamic format changes #173
Comments
Curious .... given that each encoded video frame already contains width and height .... what does it mean that "track width and height MUST be recorded"? |
@alvestrand It means that if the input width and height are 150, 150, then then next frames are 300, 300, respectively, when the recording is played back the width and height are 150, 150, then 300, 300, not only the maximum width and height of all the input width and height, in this example case, 300, 300, with an inset in the video in the upper left-corner being 150, 150, with observable artifacts in the recorded video https://bugs.chromium.org/p/chromium/issues/detail?id=972470#c11 (https://bugs.chromium.org/p/chromium/issues/attachment?aid=404779&signed_aid=U4u0higdiNxaFBEPLgVbgg==&inline=1), https://bugs.chromium.org/p/chromium/issues/detail?id=972470#c12 (https://bugs.chromium.org/p/chromium/issues/attachment?aid=404780&signed_aid=PXpEFLruVo9ck6oul-PnCg==&inline=1). For the implementation to the degree Kindly contribute language that you can immediately understand, and that you believe others will immediately understand, if you have determined the language in this issue and linked PR #172 are not sufficient at described the issue and the language needed to fix the issue for specification requirements to be met. |
@alvestrand Reproduction of the issue relevant to Note, the very basic code occasionally crashes the browser tab. VP8 and VP9 implementation at Chromium do not appear to be configured to encode the correct pixel dimensions of input frames. See also https://bugs.chromium.org/p/chromium/issues/detail?id=983777. |
@alvestrand The only way that have been able to output the identical pixel dimensions as input pixel dimensions at Chromium is to use |
@alvestrand Had concluded that Chromium implementation of HTML When the codecs are eithe VP8 or VP9 this code https://plnkr.co/edit/4JxS4O?p=preview demonstrates that the options set for VP8 and VP9 codecs at Chromium could be the issue, using https://github.com/thenickdude/webm-writer-js with the minimal amount of lines commented from the original repository to output variable width and height and dispatches
There are use cases for both constant pixel dimensions and variable pixel dimensions. In this case the expected output is variable width and height (the same as input) which should cause HTML That is what the linked PR #172 changes about this specification: the capability to set constant or variable pixel dimensions for the WebM file output, which has consistent display properties at both Mozilla Firefox and Nightly and Chromium and Chrome browsers, et al., instead of the inconsistent behaviour (between codecs and browsers implementing the same API) of the implementation of |
The specification does not currently clearly state that input video track(s) width and height MUST be recorded and reflected in the
Blob
or smaller buffers of data recorded byMediaRecorder
.Currently at Chromium 76 neither variable video track input
width
andheight
are NOT output at the resultingBlob
either by usingcanvas.captureStream()
,HTMLMediaElement.captureStream()
orWebRTC
https://bugs.chromium.org/p/chromium/issues/detail?id=972470.It is reasonable for users of
MediaRecorder
to expect variable width and height input to be reflected in the resulting media file(s).This change fixes the omission in the specification as to what MUST occur as to recording and outputting a media file which contains variable witdth and and height input and makes it clear that the width and height of each input video track (image) MUST be recorded and output at both single
Blob
and multipleBlobs
atdataavailable
event.Pull Request #172
The text was updated successfully, but these errors were encountered: