Ticket #295 (closed enhancement: fixed)

Opened 2 years ago

Last modified 19 months ago

support for http://www.webmproject.org/

Reported by: MC-arjen Owned by: frans
Priority: major Milestone: MediaMosa 2.2
Component: Transcoding Version:
Keywords: Cc:
MoSCoW: Must Have Estimated time after impact analysis:
Related to project: none Tested: yes
Accepted: yes Estimated Hours: 10

Description

Google announced webm on 19 may;

A key factor in the web’s success is that its core technologies such as HTML, HTTP, TCP/IP, etc. are open and freely implementable. Though video is also now core to the web experience, there is unfortunately no open and free video format that is on par with the leading commercial choices. To that end, we are excited to introduce WebM, a broadly-backed community effort to develop a world-class media format for the open web.

WebM includes:

  • VP8, a high-quality video codec we are releasing today under a BSD-style, royalty-free license
  • Vorbis, an already open source and broadly implemented audio codec
  • a container format based on a subset of the Matroska media container

Change History

Changed 2 years ago by Frans

  • moscow changed from none to Could Have
  • milestone changed from MediaMosa X.X to MediaMosa 2.2

Changed 2 years ago by Michiel.Schok

When implemented on the VP-Core platform, the current apache server which serves Ogg (theora/vorbis) files could be re-used for WebM.

Changed 2 years ago by Frans

  • moscow changed from Could Have to Must Have

Must have if it will 'fit'

Changed 2 years ago by robert

Duplicate of #9 ?

Changed 2 years ago by Michiel.Schok

No duplicate. #9 is about 'object code', and created in the time (more than a year ago) when we started playing with 'ogg' formats. Should be redefined, me thinks.

My interpretation for this ticket is VP-Core/MediaMosa wide support of WebM, so
1. Transcoding to and from WebM
2. Playout (streaming / pseudo streaming) of mediafiles
3. ... (anybody) ...

Changed 2 years ago by robert

  • estimated_hours set to 10

Changed 22 months ago by Frans

Changed 22 months ago by Michiel.Schok

ffmpeg 0.6 has support voor WebM VP/8

http://www.ffmpeg.org/releases/ffmpeg-0.6.changelog

...
- VP8 de/encoding via libvpx
...

Changed 22 months ago by Michiel.Schok

Just sent a few 'WebM/VP8' files to Core-acc.

http://beheer.acceptatie.vpcore.snkn.nl/admin/mediamosa/browse/asset/WbDXhoCiIkZQiODKdbg0Dzim is one example.

Transcode logging:

Info TRANSCODE job, Job ID 694, status file 'Status: error Errors:
swScaler: Unknown format is not supported as input pixel format Errors:
Error: ffmpeg returned a non-zero exit code: 1 FFmpeg version
SVN-r22897, Copyright (c) 2000-2010 the FFmpeg developers built on Jul 5
2010 15:16:35 with gcc 4.3.2 configuration: --enable-nonfree
--enable-libx264 --enable-gpl --enable-pthreads --enable-libmp3lame
--enable-libfaad --enable-libfaac --enable-libvorbis --enable-libtheora
--enable-libgsm --enable-libxvid --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-version3 libavutil 50.14. 0 / 50.14.
0 libavcodec 52.66. 0 / 52.66. 0 libavformat 52.61. 0 / 52.61. 0
libavdevice 52. 2. 0 / 52. 2. 0 libswscale 0.11. 0 / 0.11. 0 [matroska @
0x8c89420]Unknown/unsupported CodecID V_VP8. [matroska @
0x8c89420]MAX_READ_SIZE:5000000 reached [matroska @ 0x8c89420]Estimating
duration from bitrate, this may be inaccurate Input #0, matroska, from ...

Changed 22 months ago by Frans

For support in the WLE, this maybe something to check out:

http://www.mediafront.org/project/mediafront_drupal

Changed 21 months ago by peter

  • owner set to arjen
  • status changed from new to assigned

Changed 21 months ago by MC-arjen

  • status changed from assigned to closed
  • resolution set to fixed

In 2.2 We added a new transcoding package with webm:

  • Updated FFmpeg to snapshot (r24986) 20100830
  • added WebM / VP8 support
  • Updated x264 to snapshot 20100830

debian package vpx-transcoding : 2.1

Changed 21 months ago by Michiel.Schok

  • status changed from closed to reopened
  • resolution fixed deleted

Is this one testable?

1. Is there a streaming server definition?
2. Is there transcoding support?

(I see http://beheer.acceptatie.vpcore.snkn.nl/admin/mediamosa/config/transcode_profile/82, but it appears empty (no command is filled))

3. Is there transcoding support on the GUI part (to choose bitrates / resolution / etc)

ad 1.
I found a definition. I changed the containertype part from 'matroska;webm' to 'matroska|webm' so get it working.
But the tickets I receive give '404-not found' when I try to download the file

<request_uri>[GET] asset/U2VKx39ccWfa7ZZSMdIv4MMJ/play?mediafile_id=P1jfMNQrcFHpBXiJYtNPWNzF&amp;user_id=xyz&amp;response=object</request_uri>

    <item id="1">
      <output>&lt;video id="video" src="http://app.acceptatie.vpcore.snkn.nl/ticket/5/PNSfUJNWjOGpOKgQlwVSj4xy" height="334" width="480" autoplay controls="true"&gt;Your browser does not support this video&lt;/video&gt;</output>
      <content_type>text/html</content_type>
      <ticket_id>PNSfUJNWjOGpOKgQlwVSj4xy</ticket_id>
    </item>

GET /ticket/5/PNSfUJNWjOGpOKgQlwVSj4xy HTTP/1.1
Host: app.acceptatie.vpcore.snkn.nl
...
HTTP/1.1 404 Not Found
Date: Fri, 10 Sep 2010 15:20:11 GMT

Changed 21 months ago by Michiel.Schok

Oh... And the mime-type of the files... they are 'application/octet-stream', which makes them invisible in SURFmedia...

Changed 20 months ago by MC-arjen

questions from Michiel:

1. Yes. ffmpeg creates transcodes with container "matroska;webm", so that was the reason for the definition. Apparently youtube creates them with: "matroska", so i modified the containertype to: "matroska|webm|matroska;webm". With this it works for ffmpeg and youtube video's.

2/3. Yes, transcoding profile 82 is the test profile, only needed are the file extention for ffmpeg to create a correct webm file. No parameters means: take the default parameters, or look at the original video. I succesfully transcoded several videos with this transcode profile. Of course: we should discuss bitrate parameters for use in the VP-Core service. Any suggestions, perhaps we can rebuild the SM_264* versions to similar webm formats?

3. I now defined a very basic html5 object code.

<video id="video" src="{TICKET_URI}" height="{HEIGHT}" width="{WIDTH}" {AUTOPLAY_TEXT} controls="true">Your browser does not support this video</video>

Could be improved, but does the trick.

The Download: don't know yet, should not be related to the webm support...

4. hmm, well... the Mimetype, in 2.2.2 we will include the proper magic definitions.

Changed 20 months ago by MC-arjen

About the mime-type; I will return "video/matroska" for the youtube vp8 files, and "video/webm" for the ffmpeg generated ones.

Changed 20 months ago by Michiel.Schok

Job 995 is still 'waiting': http://beheer.acceptatie.vpcore.snkn.nl/admin/mediamosa/status/job/list/waiting

And I put the job in yesterday.

Changed 20 months ago by Michiel.Schok

Forget the last comment about the waiting job. I used the 'node-id' (82) as transcode profile_id. Jobs are running now.

Changed 20 months ago by Michiel.Schok

Transcoded a file to webm and got id amOheb8QOGLPPfiPLoitWs7L
Unfortunately, its mimetype is not correct.

<?xml version="1.0" encoding="UTF-8"?>
<response>
  <header>
    <item_count>1</item_count>
    <item_count_total>1</item_count_total>
    <item_offset>0</item_offset>
    <request_class>mediamosa_rest_call_get_mediafile</request_class>
    <request_matched_method>GET</request_matched_method>
    <request_matched_uri>/mediafile/$mediafile_id</request_matched_uri>
    <request_process_time>0.3945</request_process_time>
    <request_result>success</request_result>
    <request_result_description></request_result_description>
    <request_result_id>601</request_result_id>
    <request_uri>[GET] mediafile/amOheb8QOGLPPfiPLoitWs7L</request_uri>
    <version>2.2.2.922</version>
  </header>
  <items>
    <item id="1">
      <mediafile_id>amOheb8QOGLPPfiPLoitWs7L</mediafile_id>
      <asset_id>V1KYLVQWNhecVaV8LqJZwrts</asset_id>
      <mediafile_id_source>d1PPgfPHTohRRQVWGhJeLt9D</mediafile_id_source>
      <tag></tag>
      <app_id>5</app_id>
      <owner_id>SURFNET.michiel</owner_id>
      <group_id></group_id>
      <is_original_file>FALSE</is_original_file>
      <is_downloadable>FALSE</is_downloadable>
      <is_streamable>FALSE</is_streamable>
      <is_still>FALSE</is_still>
      <filename>Braambos.webm</filename>
      <uri></uri>
      <transcode_profile_id>107</transcode_profile_id>
      <tool>ffmpeg</tool>
      <command></command>
      <file_extension>webm</file_extension>
      <is_protected>FALSE</is_protected>
      <created>2010-09-27 16:22:07</created>
      <changed>2010-09-27 16:22:07</changed>
      <transcode_inherits_acl>TRUE</transcode_inherits_acl>
      <metadata>
        <video_codec>vp8</video_codec>
        <colorspace>yuv420p</colorspace>
        <width>352</width>
        <height>288</height>
        <fps>15</fps>
        <audio_codec>vorbis</audio_codec>
        <sample_rate>22050</sample_rate>
        <channels>mono</channels>
        <file_duration>00:08:04.15</file_duration>
        <container_type>matroska;webm</container_type>
        <bitrate>15</bitrate>
        <bpp>0.01</bpp>
        <filesize>14869699</filesize>
        <mime_type>application/octet-stream</mime_type>
        <is_hinted>FALSE</is_hinted>
        <is_inserted_md>FALSE</is_inserted_md>
      </metadata>
      <ega_download_url></ega_download_url>
      <ega_stream_url>http://www.20.test.surfmedia.nl/app/video/V1KYLVQWNhecVaV8LqJZwrts/play?format_id=amOheb8QOGLPPfiPLoitWs7L</ega_stream_url>
      <ega_play_url>http://www.20.test.surfmedia.nl/app/video/V1KYLVQWNhecVaV8LqJZwrts/play?format_id=amOheb8QOGLPPfiPLoitWs7L</ega_play_url>
      <response_object_available>TRUE</response_object_available>
      <response_plain_available>TRUE</response_plain_available>
      <response_metafile_available>FALSE</response_metafile_available>
    </item>
  </items>
</response>

Changed 20 months ago by MC-arjen

ZX has not deployed the magic definitions, i will ask Kennisnet about it...

Changed 20 months ago by MC-arjen

for documentation purposes, we defined the following (found on the file/magic email list):

#------------------------------------------------------------------------------
# $File: matroska,v 1.5 2009/09/27 19:02:12 christos Exp $
# webm: file(1) magic for WebM files
#
# See http://www.webmproject.org/
#

# EBML id:
0 belong 0x1a45dfa3
# DocType? id:

0 search/4096 \x42\x82

# DocType? contents:

&1 string webm WebM

!:mime video/webm

&1 string matroska Matroska

!:mime video/matroska

Changed 20 months ago by MC-arjen

#------------------------------------------------------------------------------
# $File: matroska,v 1.5 2009/09/27 19:02:12 christos Exp $
# webm:  file(1) magic for WebM files
#
# See http://www.webmproject.org/
#

# EBML id:
0               belong          0x1a45dfa3
# DocType id:
>0              search/4096     \x42\x82
# DocType contents:
>>&1            string          webm    WebM
!:mime  video/webm
>>&1            string          matroska        Matroska
!:mime  video/matroska

Changed 19 months ago by Michiel.Schok

  • owner changed from arjen to frans
  • status changed from reopened to assigned
  • accepted changed from no to yes
  • tested changed from no to yes

Getest in verschillende scenario's.

Origineel webm bestand geupload in VP-Core. Mime-type wordt correct gezet (video/webm), technische analyse wordt correct gedaan op 1 ding na: de bitrate. Transcode van WebM naar flv (standaard SURFmedia preview) gaat goed. WebM bestand is af te spelen in Chrome.

Ander bestand in VP-core (wmv origineel) getranscodeerd met een nagenoeg leeg transcodeprofiel (102) naar webm. Transcode verloopt goed, analyse verloopt goed, ook hier de bitrate foutief. Afspelen lukt ook weer in chrome.

Assign to Frans om te bepalen wat we met de incorrecte analyse van de bitrate doen.

(Please will somebody translate? I've too little time)

Changed 19 months ago by Frans

  • status changed from assigned to closed
  • resolution set to fixed

{Translation)
Tested in different scenarios.

Original WebM file uploaded to VP-Core. Mime type is set correctly (video / webm), technical analysis is done correctly except for one thing: the bitrate. Transcode from WebM to flv (SURFmedia default preview) is going well. WebM file can be played in Chrome.

Another file in VP-core (original wmv) with a virtually empty transcoding profile (102) to webm. Transcode is going well, analysis is good, again a wrong bitrate is reported. Play succeeds again in chrome.

Will close this ticket and submit a new one for the bitrate bug with WebM.

Note: See TracTickets for help on using tickets.