Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#5049 closed defect (fixed)

Strange bug when converting to .webm

Reported by: Alexander2015 Owned by:
Priority: normal Component: avformat
Version: git-master Keywords: mkv opus
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:

Video converted to .webm format with ffmpeg defaults (video: vp9, audio: opus) don't playing with Mozilla FireFox?. In Chromium-based browsers and videoplayers MPlayer, VLC -- playing is Ok. I write bugreport to Mozilla and it confirmed: https://bugzilla.mozilla.org/show_bug.cgi?id=1227680

But stay question: from here source of this bug: 3 (!) sources video, FFmpeg or FireFox? player ? (I nay try convert source video in raw and pcm.)

3 sources of this video (wget needed):

http://b1.m24.ru/c/540647.m3u8
http://b1.m24.ru/c/540647.1.webm
http://b1.m24.ru/c/540647.576p.mp4

How to reproduce:

% ffmpeg -i infile.avi -format webm outfile.webm

ffmpeg version 2.8.2-1 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 5.2.1 (Debian 5.2.1-23) 20151028

built on Linux 3.16-1-686-pae #1 SMP Debian 3.16.2-2 (2014-09-08) i686 GNU/Linux

Resulted bugged file is here: http://vek-home.ru/bp_c.webm

If I change audiocodec to libvorbis, then bug leave: http://vek-home.ru/bp101.webm

Other files (from other sources) converted with default options and playing in FireFox? normally.
For example: http://vek-home.ru/Alla_KN4.webm

Change History (9)

comment:1 Changed 3 years ago by cehoyos

Do I understand correctly that you want to report that Firefox fails to play stereo opus audio? Is there anything that the FFmpeg developers can do to fix this issue in Firefox?
Or do I misunderstand? If there is an issue that can be fixed within FFmpeg, please test current FFmpeg git head and provide the command line that allows to reproduce the issue together with the complete, uncut console output to make this a valid ticket.

comment:2 Changed 3 years ago by Alexander2015

Good, I be make FFmpeg from sources from GIT. But may be FFmpeg developers can inspect, check or validate sources of video (and may be result of converting?) by use self tools and colossal wisdom in videoprocessing. I think, FireFox? developers or fix or hack bug on self side, but strange that it occure. May be it research make FFmpeg more powerfull?

comment:3 Changed 3 years ago by Alexander2015

I make FFmpeg from GIT sources. Configure and Make no errors gives. Key -codecs show list, contain vp8, vp9 and opus. When I run ffmpeg -i outfile.avi -format webm outfileGIT.webm get message:

Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> ? (?))
  Stream #0:1 -> #0:1 (aac (native) -> vorbis (native))
Encoder (codec vp8) not found for output stream #0:0

When I run ffmpeg -i outfile.avi -acodec opus -vcodec vp9 -format webm outfileGIT.webm :

Input #0, avi, from 'outfile.avi':
  Metadata:
    encoder         : Lavf56.40.101
  Duration: 00:02:26.04, start: 0.000000, bitrate: 1366 kb/s
    Stream #0:0: Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 788x576 [SAR 2560:2561 DAR 160:117], 1257 kb/s, 50 fps, 25 tbr, 50 tbn, 50 tbc
    Stream #0:1: Audio: aac (LC) ([255][0][0][0] / 0x00FF), 32000 Hz, stereo, fltp, 95 kb/s
Unknown encoder 'vp9'
ffmpeg version N-76960-g25e37f5 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 5.2.1 (Debian 5.2.1-22) 20151010
  configuration: 
  libavutil      55.  9.100 / 55.  9.100
  libavcodec     57. 16.101 / 57. 16.101
  libavformat    57. 19.100 / 57. 19.100
  libavdevice    57.  0.100 / 57.  0.100
  libavfilter     6. 17.100 /  6. 17.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101

comment:4 Changed 3 years ago by cehoyos

You have to run configure with the options --enable-libvpx --enable-libopus if you want to use the vp9 and the opus encoder.

comment:5 Changed 3 years ago by Alexander2015

Thank for keys! I rebuild FFmpeg and run conversion. But bug stay up.

comment:6 follow-up: Changed 3 years ago by Alexander2015

News in https://bugzilla.mozilla.org/show_bug.cgi?id=1227680 :

http://vek-home.ru/bp_c.webm fails because the CodecDelay? Matroska element doesn't match Pre-Skip in the Opus header. This is a known ffmpeg bug (and chrome bug for not rejecting the file).

[Child 60879] WARNING: Invalid Opus header: CodecDelay? and pre-skip do not match!: file /Users/giles/firefox/dom/media/platforms/agnostic/OpusDecoder.cpp, line 76

Comment 6 Ralph Giles (:rillian) 2016-01-11 19:16:15 PST

This was fixed in ffmpeg January 6 in commit c3c22bee6362737cf290929b7f31df9fb88da983.

https://trac.ffmpeg.org/ticket/5121

* This bug has been marked as a duplicate of bug 1227153 *

comment:7 Changed 3 years ago by cehoyos

  • Component changed from undetermined to avformat
  • Keywords mkv opus added
  • Resolution set to fixed
  • Status changed from new to closed
  • Version changed from unspecified to git-master

Thank you for testing again!
For future tickets, please remember to provide the FFmpeg command line that allows to reproduce the issue together with the complete, uncut console output.

comment:8 in reply to: ↑ 6 Changed 3 years ago by cehoyos

Replying to Alexander2015:

http://vek-home.ru/bp_c.webm fails because the CodecDelay? Matroska element doesn't match Pre-Skip in the Opus header. This is a known ffmpeg bug

(and chrome bug for not rejecting the file).

While we all appreciated the help of the Firefox developers when fixing this bug very much, I consider this argument mostly absurd.

comment:9 Changed 3 years ago by Alexander2015

I recompile FFmpeg from new sources and confirm, that conversion now works. Thank You !

Note: See TracTickets for help on using tickets.