New issue
Advanced search Search tips

Issue 613665 link

Starred by 3 users

Issue metadata

Status: Verified
Owner:
Closed: Jun 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows , Mac
Pri: 1
Type: Bug-Regression



Sign in to add a comment

Cannot playback video recorded with MediaRecorder if codec set to vp9

Reported by jeremy.n...@gmail.com, May 20 2016

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.0 Safari/537.36

Example URL:
https://webrtc.github.io/samples/src/content/getusermedia/record/

Steps to reproduce the problem:
1. go to https://webrtc.github.io/samples/src/content/getusermedia/record/
2. open dev tools
3. put a breakpoint here:

function startRecording() {
  var options = {mimeType: 'video/webm'};
  recordedBlobs = [];  // BREAKPOINT HERE

4. hit "start recording'; you'll hit aforementioned breakpoint
5. in the console, type options.mimeType = 'video/webm;codecs=vp9,opus'
6. continue program execution.  Record some video.
7. Stop recording, then try to playback.  No video will be shown.  Audio may work.

If you download the file and examine it with ffprobe, you'll see:

Jeremys-MacBook-Pro-2:~ jnoring$ ffprobe ~/Downloads/chrome_52_broken.webm
ffprobe version 3.0 Copyright (c) 2007-2016 the FFmpeg developers
  built with Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/3.0 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libxvid --enable-libfontconfig --enable-libfreetype --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfaac --enable-libass --enable-ffplay --enable-libspeex --enable-libfdk-aac --enable-libopus --enable-frei0r --enable-libcaca --enable-libsoxr --enable-libx265 --enable-libbs2b --enable-nonfree --enable-vda
  libavutil      55. 17.103 / 55. 17.103
  libavcodec     57. 24.102 / 57. 24.102
  libavformat    57. 25.100 / 57. 25.100
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 31.100 /  6. 31.100
  libavresample   3.  0.  0 /  3.  0.  0
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
Input #0, matroska,webm, from '/Users/jnoring/Downloads/chrome_52_broken.webm':
  Metadata:
    encoder         : Chrome
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0(eng): Audio: opus, 48000 Hz, mono, fltp (default)
    Stream #0:1(eng): Video: vp8, yuv420p, 640x480, SAR 1:1 DAR 4:3, 24 fps, 24 tbr, 1k tbn, 1k tbc (default)

...it looks like the super blob (which is a single blob consisting of all the smaller blobs) thinks it's vp8, which it isn't.  If the file is played back, there's complaints about VP8 header size being larger than data provided, which is likely because it should be played with vp9?

What is the expected behavior?
Blob can be played back locally, or downloaded and played.

What went wrong?
I believe the resulting blob is corrupted and/or incorrect, and cannot be played back.

Did this work before? Yes Chrome Beta (51) works fine, as does Chrome 50.

Is it a problem with Flash or HTML5? HTML5

Does this work in other browsers? Yes 

Chrome version: 52.0.2743.0  Channel: canary
OS Version: OS X 10.9.5
Flash Version: Shockwave Flash 22.0 r0
 
Sorry, one very important detail I should have in the title: this reproduces with Chrome 52 (current Canary); it does not repro with anything else I've tried.
Components: -Internals>Media Blink>WebRTC
Yini, the component for this should probably be Blink>MediaStreamRecording and mcasas@chromium.org may have input here.

Comment 4 by ajha@chromium.org, May 26 2016

Cc: emir...@chromium.org ajha@chromium.org
Components: -Blink>WebRTC Blink>MediaStream>Recording
Labels: -Type-Bug -Pri-2 ReleaseBlock-Stable M-52 OS-Windows Pri-1 Type-Bug-Regression
Owner: mcasas@chromium.org
Status: Assigned (was: Unconfirmed)
Able to reproduce this on the latest canary(53.0.2749.0) on Mac OS 10.11.5 and Windows-10. Don't have Linux set up to confirm the same.

This is a regression issue broken in M-52.

Last good build: 52.0.2720.0
First bad build: 52.0.2721.0

Changelog:
https://chromium.googlesource.com/chromium/src/+log/3d20aaaab890829087e0870d8116b720685b43a7..1dd47922979b128ce7ee8debf138b83c65661024

Suspected change: https://codereview.chromium.org/1920483002

mcasas@: Could you please take a look at this.

Thank you!

Comment 5 by mcasas@chromium.org, May 27 2016

Status: Started (was: Assigned)
Overlooked typo, solution coming in https://crrev.com/2010413002/
Project Member

Comment 6 by bugdroid1@chromium.org, May 27 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/35bb0d816c17ade12088e67a35a2e9e40c403b01

commit 35bb0d816c17ade12088e67a35a2e9e40c403b01
Author: mcasas <mcasas@chromium.org>
Date: Fri May 27 17:18:23 2016

MediaRecorder: fix typo

It mistakenly said VP8 when it should have said VP9.

BUG= 613665 ,  601636 

TBR=emircan@chromium.org

Review-Url: https://codereview.chromium.org/2010413002
Cr-Commit-Position: refs/heads/master@{#396496}

[modify] https://crrev.com/35bb0d816c17ade12088e67a35a2e9e40c403b01/content/renderer/media/media_recorder_handler.cc

Comment 7 by mcasas@chromium.org, May 27 2016

Labels: Merge-Request-52
We will verify the fix in canary.

If all goes well, please merge to 2743 branch before 05/31,Monday 5.00 pm PST.

Comment 9 by tin...@google.com, May 28 2016

Labels: -Merge-Request-52 Merge-Approved-52 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M52 (branch: 2743)
Cc: ligim...@chromium.org
Ouch I misse the merge window yesterday what with
Memorial Day etc., can I still merge to 2743 ?
Sure, please go ahead an merge by EOD today(05/31), so it gets picked up for Beta Promotion scheduled on 06/02.
Project Member

Comment 12 by bugdroid1@chromium.org, May 31 2016

Labels: -merge-approved-52 merge-merged-2743
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b166edf19fdc4d849626921b05a29b3091495f4c

commit b166edf19fdc4d849626921b05a29b3091495f4c
Author: mcasas <mcasas@chromium.org>
Date: Tue May 31 20:43:35 2016

MediaRecorder: fix typo

It mistakenly said VP8 when it should have said VP9.

BUG= 613665 ,  601636 

TBR=emircan@chromium.org

Review-Url: https://codereview.chromium.org/2010413002
Cr-Commit-Position: refs/heads/master@{#396496}
(cherry picked from commit 35bb0d816c17ade12088e67a35a2e9e40c403b01)

NOTRY=true
NOPRESUBMIT=true

Review-Url: https://codereview.chromium.org/2023083002
Cr-Commit-Position: refs/branch-heads/2743@{#145}
Cr-Branched-From: 2b3ae3b8090361f8af5a611712fc1a5ab2de53cb-refs/heads/master@{#394939}

[modify] https://crrev.com/b166edf19fdc4d849626921b05a29b3091495f4c/content/renderer/media/media_recorder_handler.cc

Comment 13 by ajha@chromium.org, Jun 1 2016

Labels: TE-Verified-52.0.2743.21 TE-Verified-M52 TE-Verified-M53 TE-Verified-53.0.2754.0
Verified the fix on the latest canary(53.0.2754.0) and merge on the latest M-52(52.0.2743.21 /2743@{#157}) on Windows 10 and Mac OS 10.11.5. This is working as intended.

Adding the verified label.

Note: Fix would be available in M-52 in next week's release.
If there is no pending work, please tag the bug as fixed.
Status: Verified (was: Started)
(thought #13 marked it as Verified)
Components: Blink>MediaRecording
Components: -Blink>MediaStream>Recording

Sign in to add a comment