Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#5049 closed defect (fixed)

Strange bug when converting to .webm

Reported by: Alexander 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 by Carl Eugen Hoyos, 8 years ago

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 by Alexander, 8 years ago

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 by Alexander, 8 years ago

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 by Carl Eugen Hoyos, 8 years ago

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 by Alexander, 8 years ago

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

comment:6 by Alexander, 8 years ago

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 by Carl Eugen Hoyos, 8 years ago

Component: undeterminedavformat
Keywords: mkv opus added
Resolution: fixed
Status: newclosed
Version: unspecifiedgit-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.

in reply to:  6 comment:8 by Carl Eugen Hoyos, 8 years ago

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 by Alexander, 8 years ago

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

Note: See TracTickets for help on using tickets.