Opened 10 years ago

Closed 10 years ago

#3583 closed defect (fixed)

Internet Explorer fails to play WebM files produced by ffmpeg

Reported by: Gray Owned by:
Priority: important Component: avformat
Version: git-master Keywords: mkv regression
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Internet Explorer shows "Invalid Source" when trying to play WebM files encoded with ffmpeg 2.
Videos encoded with ffmpeg 1.2 seem to work fine.

How to reproduce:
Try re-encoding the Big Buck Bunny trailer (http://www.webmfiles.org/demo-files/) using ffmpeg 2 and ffmpeg 1.2.
File from ffmpeg2 will show "Invalid Source" in IE11.
File from ffmpeg1.2 will play fine.


Windows 7 32-bit

ffmpeg version 2.2.1
built on Apr 11 2014 00:23:56 with gcc 4.8.2 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
libavutil 52. 66.100 / 52. 66.100
libavcodec 55. 52.102 / 55. 52.102
libavformat 55. 33.100 / 55. 33.100
libavdevice 55. 10.100 / 55. 10.100
libavfilter 4. 2.100 / 4. 2.100
libswscale 2. 5.102 / 2. 5.102
libswresample 0. 18.100 / 0. 18.100
libpostproc 52. 3.100 / 52. 3.100

ffmpeg version 1.2
built on Mar 28 2013 00:28:48 with gcc 4.8.0 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
libavutil 52. 18.100 / 52. 18.100
libavcodec 54. 92.100 / 54. 92.100
libavformat 54. 63.104 / 54. 63.104
libavdevice 54. 3.103 / 54. 3.103
libavfilter 3. 42.103 / 3. 42.103
libswscale 2. 2.100 / 2. 2.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100

Attachments (1)

patchwebm2.diff (2.2 KB ) - added by Carl Eugen Hoyos 10 years ago.

Download all attachments as: .zip

Change History (19)

comment:1 by Gray, 10 years ago

Summary: Internet Explorer fails to play WebM files produces by ffmpegInternet Explorer fails to play WebM files produced by ffmpeg

comment:2 by Carl Eugen Hoyos, 10 years ago

Component: ffmpegundetermined
Keywords: regression added
Priority: normalimportant

Is the problem not reproducible with current FFmpeg git head?
Please provide your failing command line together with the complete, uncut console output to make this a valid ticket.
In the case of a regression like this one, please either add the change that introduced the regression or at least provide the working command line including complete, uncut console output.

in reply to:  2 comment:3 by Gray, 10 years ago

Replying to cehoyos:

Is the problem not reproducible with current FFmpeg git head?

It's still reproducible with git-84d6ba6 from Zeranoe.

In the case of a regression like this one, please either add the change that introduced the regression or at least provide the working command line including complete, uncut console output.

I don't have the exact commit, but Zeranoe's build of 1.2 from 27-Mar-2013 23:44 seems to work fine.
2.0.1 from 26-Sep-2013 01:25 doesn't.

ffmpeg -i big-buck-bunny_trailer.webm -crf 10 -b:v 800k -y -an bbb_broken.webm

I had to cut the console log a bit, it was 1k lines long.
This produces unreadable files in IE11:

ffmpeg version N-62605-g84d6ba6 Copyright (c) 2000-2014 the FFmpeg developers
  built on Apr 21 2014 22:02:56 with gcc 4.8.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-decklink --enable-zlib
  libavutil      52. 77.100 / 52. 77.100
  libavcodec     55. 58.105 / 55. 58.105
  libavformat    55. 37.101 / 55. 37.101
  libavdevice    55. 13.100 / 55. 13.100
  libavfilter     4.  4.100 /  4.  4.100
  libswscale      2.  6.100 /  2.  6.100
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with argument '9'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument '99'.
Reading option '-i' ... matched as input file with argument 'big-buck-bunny_trailer.webm'.
Reading option '-crf' ... matched as AVOption 'crf' with argument '10'.
Reading option '-b:v' ... matched as option 'b' (video bitrate (please use -b:v)) with argument '800k'.
Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
Reading option '-an' ... matched as option 'an' (disable audio) with argument '1'.
Reading option 'bbb_broken.webm' ... matched as output file.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument 9.
Applying option y (overwrite output files) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input file big-buck-bunny_trailer.webm.
Successfully parsed a group of options.
Opening an input file: big-buck-bunny_trailer.webm.
[matroska,webm @ 0026d8c0] Format matroska,webm probed with size=2048 and score=100
st:0 removing common factor 1000000 from timebase
st:1 removing common factor 1000000 from timebase
[matroska,webm @ 0026d8c0] Before avformat_find_stream_info() pos: 3963 bytes read:32768 seeks:0
[matroska,webm @ 0026d8c0] All info found
[matroska,webm @ 0026d8c0] After avformat_find_stream_info() pos: 4440 bytes read:32768 seeks:0 frames:2
Input #0, matroska,webm, from 'big-buck-bunny_trailer.webm':
  Metadata:
    encoder         : http://sourceforge.net/projects/yamka
    creation_time   : 2010-05-20 08:21:12
  Duration: 00:00:32.48, start: 0.000000, bitrate: 533 kb/s
    Stream #0:0(eng), 1, 1/1000: Video: vp8, yuv420p, 640x360, 1/1000, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 1k tbn, 1k tbc (default)
    Stream #0:1(eng), 1, 1/1000: Audio: vorbis, 44100 Hz, mono, fltp (default)
Successfully opened the file.
Parsing a group of options: output file bbb_broken.webm.
Applying option b:v (video bitrate (please use -b:v)) with argument 800k.
Applying option an (disable audio) with argument 1.
Successfully parsed a group of options.
Opening an output file: bbb_broken.webm.
Successfully opened the file.
detected 2 logical cores
[graph 0 input from stream 0:0 @ 0397ece0] Setting 'video_size' to value '640x360'
[graph 0 input from stream 0:0 @ 0397ece0] Setting 'pix_fmt' to value '0'
[graph 0 input from stream 0:0 @ 0397ece0] Setting 'time_base' to value '1/1000'
[graph 0 input from stream 0:0 @ 0397ece0] Setting 'pixel_aspect' to value '1/1'
[graph 0 input from stream 0:0 @ 0397ece0] Setting 'sws_param' to value 'flags=2'
[graph 0 input from stream 0:0 @ 0397ece0] Setting 'frame_rate' to value '25/1'
[graph 0 input from stream 0:0 @ 0397ece0] w:640 h:360 pixfmt:yuv420p tb:1/1000 fr:25/1 sar:1/1 sws_param:flags=2
[format @ 038d1500] compat: called with args=[yuv420p|yuva420p]
[format @ 038d1500] Setting 'pix_fmts' to value 'yuv420p|yuva420p'
[AVFilterGraph @ 002618a0] query_formats: 4 queried, 3 merged, 0 already done, 0 delayed
[libvpx @ 0397e4e0] v1.3.0
[libvpx @ 0397e4e0] --target=x86-win32-gcc --prefix=/home/kyle/software/ffmpeg/pkgs/libvpx/libvpx-1.3.0-win32 --enable-runtime-cpu-detect
[libvpx @ 0397e4e0] vpx_codec_enc_cfg
[libvpx @ 0397e4e0] generic settings
  g_usage:                      0
  g_threads:                    0
  g_profile:                    0
  g_w:                          320
  g_h:                          240
  g_timebase:                   {1/30}
  g_error_resilient:            0
  g_pass:                       0
  g_lag_in_frames:              0
[libvpx @ 0397e4e0] rate control settings
  rc_dropframe_thresh:          0
  rc_resize_allowed:            0
  rc_resize_up_thresh:          60
  rc_resize_down_thresh:        30
  rc_end_usage:                 0
  rc_twopass_stats_in:          00000000(0)
  rc_target_bitrate:            256
[libvpx @ 0397e4e0] quantizer settings
  rc_min_quantizer:             4
  rc_max_quantizer:             63
[libvpx @ 0397e4e0] bitrate tolerance
  rc_undershoot_pct:            100
  rc_overshoot_pct:             100
[libvpx @ 0397e4e0] decoder buffer model
  rc_buf_sz:                    6000
  rc_buf_initial_sz:            4000
  rc_buf_optimal_sz:            5000
[libvpx @ 0397e4e0] 2 pass rate control settings
  rc_2pass_vbr_bias_pct:        50
  rc_2pass_vbr_minsection_pct:  0
  rc_2pass_vbr_maxsection_pct:  400
[libvpx @ 0397e4e0] keyframing settings
  kf_mode:                      1
  kf_min_dist:                  0
  kf_max_dist:                  128
[libvpx @ 0397e4e0] 
[libvpx @ 0397e4e0] vpx_codec_enc_cfg
[libvpx @ 0397e4e0] generic settings
  g_usage:                      0
  g_threads:                    0
  g_profile:                    0
  g_w:                          640
  g_h:                          360
  g_timebase:                   {1/25}
  g_error_resilient:            0
  g_pass:                       0
  g_lag_in_frames:              25
[libvpx @ 0397e4e0] rate control settings
  rc_dropframe_thresh:          0
  rc_resize_allowed:            0
  rc_resize_up_thresh:          60
  rc_resize_down_thresh:        30
  rc_end_usage:                 2
  rc_twopass_stats_in:          00000000(0)
  rc_target_bitrate:            800
[libvpx @ 0397e4e0] quantizer settings
  rc_min_quantizer:             4
  rc_max_quantizer:             63
[libvpx @ 0397e4e0] bitrate tolerance
  rc_undershoot_pct:            100
  rc_overshoot_pct:             100
[libvpx @ 0397e4e0] decoder buffer model
  rc_buf_sz:                    6000
  rc_buf_initial_sz:            4000
  rc_buf_optimal_sz:            5000
[libvpx @ 0397e4e0] 2 pass rate control settings
  rc_2pass_vbr_bias_pct:        50
  rc_2pass_vbr_minsection_pct:  0
  rc_2pass_vbr_maxsection_pct:  400
[libvpx @ 0397e4e0] keyframing settings
  kf_mode:                      1
  kf_min_dist:                  0
  kf_max_dist:                  128
[libvpx @ 0397e4e0] 
[libvpx @ 0397e4e0] vpx_codec_control
[libvpx @ 0397e4e0]   VP8E_SET_CPUUSED:             1
[libvpx @ 0397e4e0]   VP8E_SET_ARNR_MAXFRAMES:      0
[libvpx @ 0397e4e0]   VP8E_SET_ARNR_STRENGTH:       3
[libvpx @ 0397e4e0]   VP8E_SET_ARNR_TYPE:           3
[libvpx @ 0397e4e0]   VP8E_SET_NOISE_SENSITIVITY:   0
[libvpx @ 0397e4e0]   VP8E_SET_TOKEN_PARTITIONS:    0
[libvpx @ 0397e4e0]   VP8E_SET_STATIC_THRESHOLD:    0
[libvpx @ 0397e4e0]   VP8E_SET_CQ_LEVEL:            10
[libvpx @ 0397e4e0] Using deadline: 1000000
Output #0, webm, to 'bbb_broken.webm':
  Metadata:
    encoder         : Lavf55.37.101
    Stream #0:0(eng), 0, 1/1000: Video: vp8 (libvpx), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 1/25, q=-1--1, 800 kb/s, 1k tbn, 25 tbc (default)
Stream mapping:
  Stream #0:0 -> #0:0 (vp8 -> libvpx)
Press [q] to stop, [?] for help
[webm @ 038d9fc0] Writing block at offset 457, size 425, pts 0, dts 0, duration 40, flags 128
[webm @ 038d9fc0] Writing block at offset 889, size 41, pts 40, dts 40, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 936, size 585, pts 80, dts 80, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 1528, size 608, pts 120, dts 120, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 2143, size 816, pts 160, dts 160, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 2966, size 910, pts 200, dts 200, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 3883, size 1090, pts 240, dts 240, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 4980, size 3354, pts 280, dts 280, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 8341, size 812, pts 320, dts 320, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 9160, size 992, pts 360, dts 360, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 10159, size 1189, pts 400, dts 400, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 11355, size 1339, pts 440, dts 440, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 12701, size 1297, pts 480, dts 480, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 14005, size 1498, pts 520, dts 520, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 15510, size 1420, pts 560, dts 560, duration 40, flags 0
[webm @ 038d9fc0] Starting new cluster at offset 16937 bytes, pts 600dts 600
[webm @ 038d9fc0] Writing block at offset 16953, size 4713, pts 600, dts 600, duration 40, flags 128
[webm @ 038d9fc0] Writing block at offset 21673, size 1378, pts 640, dts 640, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 23058, size 1494, pts 680, dts 680, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 24559, size 1800, pts 720, dts 720, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 26366, size 1522, pts 760, dts 760, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 27895, size 2330, pts 800, dts 800, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 30232, size 2454, pts 840, dts 840, duration 40, flags 0
frame=  798 fps= 25 q=0.0 size=    2517kB time=00:00:31.92 bitrate= 645.9kbits/s    
[webm @ 038d9fc0] Writing block at offset 2577062, size 3131, pts 31920, dts 31920, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 2580200, size 3208, pts 31960, dts 31960, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 2583415, size 3483, pts 32000, dts 32000, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 2586905, size 3171, pts 32040, dts 32040, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 2590083, size 5384, pts 32080, dts 32080, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 2595474, size 7275, pts 32120, dts 32120, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 2602756, size 3327, pts 32160, dts 32160, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 2606090, size 3098, pts 32200, dts 32200, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 2609195, size 2826, pts 32240, dts 32240, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 2612028, size 2833, pts 32280, dts 32280, duration 40, flags 0
[webm @ 038d9fc0] Starting new cluster at offset 2614868 bytes, pts 32320dts 32320
[webm @ 038d9fc0] Writing block at offset 2614884, size 3043, pts 32320, dts 32320, duration 40, flags 128
[webm @ 038d9fc0] Writing block at offset 2617934, size 1480, pts 32360, dts 32360, duration 40, flags 0
[output stream 0:0 @ 0397ef20] EOF on sink link output stream 0:0:default.
[webm @ 038d9fc0] Writing block at offset 2619421, size 1122, pts 32400, dts 32400, duration 40, flags 0
[webm @ 038d9fc0] Writing block at offset 2620550, size 183, pts 32440, dts 32440, duration 40, flags 0
No more output streams to write to, finishing.
[webm @ 038d9fc0] end duration = 32480
frame=  812 fps= 25 q=0.0 Lsize=    2560kB time=00:00:32.48 bitrate= 645.6kbits/s    

video:2553kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.270178%
Input file #0 (big-buck-bunny_trailer.webm):
  Input stream #0:0 (video): 812 packets read (1884876 bytes); 812 frames decoded; 
  Input stream #0:1 (audio): 1 packets read (22 bytes); 
  Total: 813 packets (1884898 bytes) demuxed
Output file #0 (bbb_broken.webm):
  Output stream #0:0 (video): 812 frames encoded; 812 packets muxed (2614201 bytes); 
  Total: 812 packets (2614201 bytes) muxed
814 frames successfully decoded, 0 decoding errors
[AVIOContext @ 0397ec20] Statistics: 176 seeks, 931 writeouts
[AVIOContext @ 0026de20] Statistics: 2165175 bytes read, 0 seeks

in reply to:  description ; comment:4 by Carl Eugen Hoyos, 10 years ago

Replying to Gray:

Internet Explorer shows "Invalid Source" when trying to play WebM files encoded with ffmpeg 2.
Videos encoded with ffmpeg 1.2 seem to work fine.

Sorry, I don't understand:
All sources I found claim that IE does not support WebM at all: How can I reproduce the regression?

in reply to:  4 comment:5 by Gray, 10 years ago

Replying to cehoyos:

Replying to Gray:

Internet Explorer shows "Invalid Source" when trying to play WebM files encoded with ffmpeg 2.
Videos encoded with ffmpeg 1.2 seem to work fine.

Sorry, I don't understand:
All sources I found claim that IE does not support WebM at all: How can I reproduce the regression?

Right, sorry about that.
Google has a plugin for IE:
https://tools.google.com/dlpage/webmmf/
http://ie.microsoft.com/testdrive/graphics/videoformatsupport/

comment:6 by Carl Eugen Hoyos, 10 years ago

Just to make sure I understand the issue correctly:
WebM files made with current FFmpeg git head play fine with Google Chrome, Firefox, vlc, MPlayer and ffplay etc. but not Google's WebM plugin for the Internet Explorer while files made with an older version of FFmpeg - namely 1.2 - play fine there.
Is that correct?

in reply to:  6 comment:7 by Gray, 10 years ago

Replying to cehoyos:

Is that correct?

Yes.

comment:8 by Carl Eugen Hoyos, 10 years ago

If you cannot tell the change introducing the regression, please provide the command line including complete, uncut console output of a working version of FFmpeg.
You could also test older Zeranoe builds if you want to help: http://ffmpeg.zeranoe.com/builds/win32/static/

in reply to:  8 comment:9 by Gray, 10 years ago

Replying to cehoyos:

If you cannot tell the change introducing the regression, please provide the command line including complete, uncut console output of a working version of FFmpeg.

This produces files that work fine in IE11:

ffmpeg-1.2 -v 9 -loglevel 99 -i big-buck-bunny_trailer.webm -crf 4 -b:v 1000k -an -y bbb_working.webm

I removed some Writing block stuff from the middle.

ffmpeg version 1.2 Copyright (c) 2000-2013 the FFmpeg developers
  built on Mar 28 2013 00:28:48 with gcc 4.8.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52. 18.100 / 52. 18.100
  libavcodec     54. 92.100 / 54. 92.100
  libavformat    54. 63.104 / 54. 63.104
  libavdevice    54.  3.103 / 54.  3.103
  libavfilter     3. 42.103 /  3. 42.103
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set libav* logging level) with argument '9'.
Reading option '-loglevel' ... matched as option 'loglevel' (set libav* logging level) with argument '99'.
Reading option '-i' ... matched as input file with argument 'big-buck-bunny_trailer.webm'.
Reading option '-crf' ... matched as AVOption 'crf' with argument '4'.
Reading option '-b:v' ... matched as option 'b' (video bitrate (please use -b:v)) with argument '1000k'.
Reading option '-an' ... matched as option 'an' (disable audio) with argument '1'.
Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
Reading option 'bbb_working.webm' ... matched as output file.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set libav* logging level) with argument 9.
Applying option y (overwrite output files) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input file big-buck-bunny_trailer.webm.
Successfully parsed a group of options.
Opening an input file: big-buck-bunny_trailer.webm.
[matroska,webm @ 0025c1a0] Format matroska,webm probed with size=2048 and score=100
st:0 removing common factor 1000000 from timebase
st:1 removing common factor 1000000 from timebase
[matroska,webm @ 0025c1a0] File position before avformat_find_stream_info() is 3963
[matroska,webm @ 0025c1a0] All info found
[matroska,webm @ 0025c1a0] File position after avformat_find_stream_info() is 4440
Input #0, matroska,webm, from 'big-buck-bunny_trailer.webm':
  Metadata:
    creation_time   : 2010-05-20 08:21:12
  Duration: 00:00:32.48, start: 0.000000, bitrate: 533 kb/s
    Stream #0:0(eng), 1, 1/1000: Video: vp8, yuv420p, 640x360, 1/1000, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 1k tbn, 1k tbc (default)
    Stream #0:1(eng), 1, 1/1000: Audio: vorbis, 44100 Hz, mono, fltp (default)
Successfully opened the file.
Parsing a group of options: output file bbb_working.webm.
Applying option b:v (video bitrate (please use -b:v)) with argument 1000k.
Applying option an (disable audio) with argument 1.
Successfully parsed a group of options.
Opening an output file: bbb_working.webm.
Successfully opened the file.
[buffer @ 02ec5ca0] Setting entry with key 'video_size' to value '640x360'
[buffer @ 02ec5ca0] Setting entry with key 'pix_fmt' to value '0'
[buffer @ 02ec5ca0] Setting entry with key 'time_base' to value '1/1000'
[buffer @ 02ec5ca0] Setting entry with key 'pixel_aspect' to value '1/1'
[buffer @ 02ec5ca0] Setting entry with key 'sws_param' to value 'flags=2'
[buffer @ 02ec5ca0] Setting entry with key 'frame_rate' to value '25/1'
[graph 0 input from stream 0:0 @ 0025a560] w:640 h:360 pixfmt:yuv420p tb:1/1000 fr:25/1 sar:1/1 sws_param:flags=2
[libvpx @ 00253200] v1.2.0
[libvpx @ 00253200] --target=x86-win32-gcc --prefix=/home/kyle/software/ffmpeg/pkgs/libvpx/libvpx-1.2.0-win32 --enable-runtime-cpu-detect
[libvpx @ 00253200] vpx_codec_enc_cfg
[libvpx @ 00253200] generic settings
  g_usage:                      0
  g_threads:                    0
  g_profile:                    0
  g_w:                          320
  g_h:                          240
  g_timebase:                   {1/30}
  g_error_resilient:            0
  g_pass:                       0
  g_lag_in_frames:              0
[libvpx @ 00253200] rate control settings
  rc_dropframe_thresh:          0
  rc_resize_allowed:            0
  rc_resize_up_thresh:          60
  rc_resize_down_thresh:        30
  rc_end_usage:                 0
  rc_twopass_stats_in:          00000000(0)
  rc_target_bitrate:            256
[libvpx @ 00253200] quantizer settings
  rc_min_quantizer:             4
  rc_max_quantizer:             63
[libvpx @ 00253200] bitrate tolerance
  rc_undershoot_pct:            100
  rc_overshoot_pct:             100
[libvpx @ 00253200] decoder buffer model
  rc_buf_sz:                    6000
  rc_buf_initial_sz:            4000
  rc_buf_optimal_sz:            5000
[libvpx @ 00253200] 2 pass rate control settings
  rc_2pass_vbr_bias_pct:        50
  rc_2pass_vbr_minsection_pct:  0
  rc_2pass_vbr_maxsection_pct:  400
[libvpx @ 00253200] keyframing settings
  kf_mode:                      1
  kf_min_dist:                  0
  kf_max_dist:                  128
[libvpx @ 00253200] 
[libvpx @ 00253200] vpx_codec_enc_cfg
[libvpx @ 00253200] generic settings
  g_usage:                      0
  g_threads:                    0
  g_profile:                    0
  g_w:                          640
  g_h:                          360
  g_timebase:                   {1/25}
  g_error_resilient:            0
  g_pass:                       0
  g_lag_in_frames:              25
[libvpx @ 00253200] rate control settings
  rc_dropframe_thresh:          0
  rc_resize_allowed:            0
  rc_resize_up_thresh:          60
  rc_resize_down_thresh:        30
  rc_end_usage:                 2
  rc_twopass_stats_in:          00000000(0)
  rc_target_bitrate:            1000
[libvpx @ 00253200] quantizer settings
  rc_min_quantizer:             4
  rc_max_quantizer:             63
[libvpx @ 00253200] bitrate tolerance
  rc_undershoot_pct:            100
  rc_overshoot_pct:             100
[libvpx @ 00253200] decoder buffer model
  rc_buf_sz:                    6000
  rc_buf_initial_sz:            4000
  rc_buf_optimal_sz:            5000
[libvpx @ 00253200] 2 pass rate control settings
  rc_2pass_vbr_bias_pct:        50
  rc_2pass_vbr_minsection_pct:  0
  rc_2pass_vbr_maxsection_pct:  400
[libvpx @ 00253200] keyframing settings
  kf_mode:                      1
  kf_min_dist:                  0
  kf_max_dist:                  128
[libvpx @ 00253200] 
[libvpx @ 00253200] vpx_codec_control
[libvpx @ 00253200]   VP8E_SET_CPUUSED:             3
[libvpx @ 00253200]   VP8E_SET_ARNR_MAXFRAMES:      0
[libvpx @ 00253200]   VP8E_SET_ARNR_STRENGTH:       3
[libvpx @ 00253200]   VP8E_SET_ARNR_TYPE:           3
[libvpx @ 00253200]   VP8E_SET_NOISE_SENSITIVITY:   0
[libvpx @ 00253200]   VP8E_SET_TOKEN_PARTITIONS:    0
[libvpx @ 00253200]   VP8E_SET_STATIC_THRESHOLD:    0
[libvpx @ 00253200]   VP8E_SET_CQ_LEVEL:            4
[libvpx @ 00253200] Using deadline: 1000000
[vp8 @ 02eb0a00] detected 2 logical cores
Output #0, webm, to 'bbb_working.webm':
  Metadata:
    encoder         : Lavf54.63.104
    Stream #0:0(eng), 0, 1/1000: Video: vp8, yuv420p, 640x360 [SAR 1:1 DAR 16:9], 1/25, q=-1--1, 1000 kb/s, 1k tbn, 25 tbc (default)
Stream mapping:
  Stream #0:0 -> #0:0 (vp8 -> libvpx)
Press [q] to stop, [?] for help
[webm @ 02f83900] Writing block at offset 460, size 425, pts 0, dts 0, duration 40, flags 128
[webm @ 02f83900] Writing block at offset 892, size 41, pts 40, dts 40, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 939, size 88, pts 80, dts 80, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 1033, size 131, pts 120, dts 120, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 1171, size 292, pts 160, dts 160, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 1470, size 539, pts 200, dts 200, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 2016, size 847, pts 240, dts 240, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 2870, size 4145, pts 280, dts 280, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 7022, size 399, pts 320, dts 320, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 7428, size 810, pts 360, dts 360, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 8245, size 1769, pts 400, dts 400, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 10021, size 1635, pts 440, dts 440, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 11663, size 1947, pts 480, dts 480, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 13617, size 4144, pts 520, dts 520, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 17768, size 2105, pts 560, dts 560, duration 40, flags 0
[webm @ 02f83900] Starting new cluster at offset 19880 bytes, pts 600
[webm @ 02f83900] Writing block at offset 19896, size 7401, pts 600, dts 600, duration 40, flags 128
[webm @ 02f83900] Writing block at offset 27304, size 2465, pts 640, dts 640, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 29776, size 2605, pts 680, dts 680, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 32388, size 3161, pts 720, dts 720, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 35556, size 2529, pts 760, dts 760, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 38092, size 3598, pts 800, dts 800, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 41697, size 4147, pts 840, dts 840, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 45851, size 4094, pts 880, dts 880, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 49952, size 3159, pts 920, dts 920, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 53118, size 2985, pts 960, dts 960, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 56110, size 2688, pts 1000, dts 1000, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 58805, size 2804, pts 1040, dts 1040, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 61616, size 2931, pts 1080, dts 1080, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 64554, size 2523, pts 1120, dts 1120, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 67084, size 2861, pts 1160, dts 1160, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 69952, size 2620, pts 1200, dts 1200, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 72579, size 2913, pts 1240, dts 1240, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 75499, size 2433, pts 1280, dts 1280, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 77939, size 2761, pts 1320, dts 1320, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 80707, size 2488, pts 1360, dts 1360, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 83202, size 2675, pts 1400, dts 1400, duration 40, flags 0
frame=  795 fps= 59 q=0.0 size=    3597kB time=00:00:31.80 bitrate= 926.6kbits/s    
Writing block at offset 3714404, size 5202, pts 31800, dts 31800, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 3719613, size 5032, pts 31840, dts 31840, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 3724652, size 5296, pts 31880, dts 31880, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 3729955, size 5050, pts 31920, dts 31920, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 3735012, size 7255, pts 31960, dts 31960, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 3742274, size 4764, pts 32000, dts 32000, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 3747045, size 4540, pts 32040, dts 32040, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 3751592, size 7265, pts 32080, dts 32080, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 3758864, size 5806, pts 32120, dts 32120, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 3764677, size 5197, pts 32160, dts 32160, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 3769881, size 4553, pts 32200, dts 32200, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 3774441, size 4108, pts 32240, dts 32240, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 3778556, size 3996, pts 32280, dts 32280, duration 40, flags 0
[webm @ 02f83900] Starting new cluster at offset 3782559 bytes, pts 32320
[webm @ 02f83900] Writing block at offset 3782575, size 4146, pts 32320, dts 32320, duration 40, flags 128
[webm @ 02f83900] Writing block at offset 3786728, size 2114, pts 32360, dts 32360, duration 40, flags 0
[output stream 0:0 @ 00253880] EOF on sink link output stream 0:0:default.
[webm @ 02f83900] Writing block at offset 3788849, size 2338, pts 32400, dts 32400, duration 40, flags 0
[webm @ 02f83900] Writing block at offset 3791194, size 355, pts 32440, dts 32440, duration 40, flags 0
No more output streams to write to, finishing.
end duration = 32480
frame=  812 fps= 59 q=0.0 Lsize=    3703kB time=00:00:32.48 bitrate= 934.0kbits/s    

video:3696kB audio:0kB subtitle:0 global headers:0kB muxing overhead 0.184783%
[AVIOContext @ 00257f40] Statistics: 2165175 bytes read, 0 seeks

You could also test older Zeranoe builds if you want to help: http://ffmpeg.zeranoe.com/builds/win32/static/

The build right after 1.2 fails (ffmpeg-20130329-git-551f683-win32-static.7z 28-Mar-2013 21:04)

And the html file I used to test in IE11:

<!DOCTYPE html>
<html>
<head>
  <title>WebM</title>
</head>
<body>
<h2>ffmpeg-20130329-git-551f683-win32-static.7z 28-Mar-2013 21:04</h2>
<video controls src="file:///C:/bbb_broken.webm"></video>
<h2>ffmpeg-1.2-win32-static.7z                  27-Mar-2013 23:4</h2>
<video controls src="file:///C:/bbb_working.webm"></video>
</body>
</html>

comment:10 by Gray, 10 years ago

This might actually not be ffmpeg's fault at all:
https://code.google.com/p/webm/issues/detail?id=767

webm files made in newer versions of ffmpeg do not work with the Internet Explorer plugin due to the codec only supporting up to MKV v2

comment:11 by Carl Eugen Hoyos, 10 years ago

Component: undeterminedavformat
Keywords: mkv added
Status: newopen
Version: 2.2.1git-master

Regression since d59213b5

comment:12 by LeRatier, 10 years ago

This is clearly the fault of the plugin. But while waiting for a fix on the plugin side, i would suggest to modify matroskaenc.c like this :

put_ebml_uint (pb, EBML_ID_DOCTYPEVERSION , 4);

replace width :

if ( mkv->mode == MODE_WEBM)

put_ebml_uint (pb, EBML_ID_DOCTYPEVERSION , 2);

else

put_ebml_uint (pb, EBML_ID_DOCTYPEVERSION , 4);

comment:13 by Carl Eugen Hoyos, 10 years ago

You could send your patch (made with git format-patch or git diff) to the ffmpeg-devel mailing list (patches are ignored on this bug tracker) but please note that the resulting files are invalid (they use features of Matroska version 4 but signal version 2).

comment:14 by Carl Eugen Hoyos, 10 years ago

(That's at least what I thought, maybe it isn't true for MODE_WEBM.)

by Carl Eugen Hoyos, 10 years ago

Attachment: patchwebm2.diff added

comment:15 by Carl Eugen Hoyos, 10 years ago

Please test attached patch.

comment:16 by Carl Eugen Hoyos, 10 years ago

Since Opus is supported in WebM and Opus requires Matroska version 4, always setting version 2 for WebM is not correct.

comment:17 by LeRatier, 10 years ago

OK understood. The patch is working : as soon as EBML_ID_DOCTYPEVERSION is 2, then the IE plugin decodes the video.

comment:18 by Carl Eugen Hoyos, 10 years ago

Resolution: fixed
Status: openclosed

Should be fixed in ab21acec
Thank you for the report and the testing!

Note: See TracTickets for help on using tickets.