13

私の PC ベースの Web アプリケーションは HTML5 を使用しており、他のアプリケーションによって保存された mpeg ファイルをインポートしてブラウザで再生したいと考えています。これらのビデオ ファイルを HTML5 で再生する方法はありますか?

編集:

アプリケーションは、サーバーではなくローカル ハード ドライブから mpeg ファイルを再生しようとします。そのため、ユーザーは選択した mpeg ファイルを再生するために mpeg ファイルを選択することができます。

HTML:

<input id="t20provideoinput" type="file" multiple accept="video/*"/>
<video id="t20provideo" controls controls>

Javascript:

(function localFileVideoPlayerInit(win) {
    var URL = win.URL || win.webkitURL;
    var sources = [];
    var j = 1;
    var videoNode = document.querySelector('video');
    var videoNode1 = document.querySelector('object');
    var groupElement = document.getElementsByClassName('metric')[0];
    console.log('this is group element ' + groupElement);

    var playSelectedFile = function playSelectedFileInit(event) {
            for(var i=0; i<this.files.length; i++){
                var file = this.files[i];

                var type = file.type;


                var fileURL = URL.createObjectURL(file);

                sources.push(fileURL);
            }

            groupElement.addEventListener('click', function(){
                videoNode.src = sources[0];
            });
        };

    var inputNode = document.getElementById('t20provideoinput');

    videoNode.addEventListener('ended', function(){
       videoNode.src = sources[j++];
       videoNode.load();
       videoNode.play();
    }, false);

    if (!URL) {
        displayMessage('Your browser is not ' + 
           '<a href="http://caniuse.com/bloburls">supported</a>!', true);

        return;
    }                

    console.log(inputNode);
    if (inputNode != null) { 
        inputNode.addEventListener('change', playSelectedFile, false);
    }

}(window)); 

http://jsfiddle.net/dsbonev/cCCZ2/embedded/result,js,html,css/presentation/から変更

ブラウザにプラグインを追加したり、 を使用しMediaelement.jsたり、objectタグを使用して、選択した mpeg ファイルを再生できるかどうかを確認したりしました。しかし、試みは失敗しました。

以下は、html5 で object タグを使用したコード スニペットです。

<object type="video/mpeg" data="test.mpeg" width="200" height="40">
  <param name="src" value="test.mpeg" />
  <param name="autoplay" value="false" />
  <param name="autoStart" value="0" />
</object>

どんな提案でも大歓迎です。

4

3 に答える 3

15

「mpeg」とは、 H.264 / MP4を参照している場合:


更新(2017年12月):

  • MP4は、すべての主要なブラウザでサポートされるようになりました。(IE9 +、およびすべての最新のデスクトップおよびモバイルブラウザー)。
  • フラッシュをフォールバックとして使用しないでください。フラッシュはほとんど機能していません。

その他の注意事項(caniuseから):

  • Firefoxは、バージョン21以降のWindows7以降でH.264をサポートしています。
  • 適切なgstreamerプラグインがインストールされている場合、Firefoxはバージョン26以降のLinuxでH.264をサポートします。
  • Windows 7では、サポートされる最大解像度は、ソフトウェアとDXVAデコードの両方で1920×1088ピクセルです。MSDN)。
  • Chromeには、長いh.264ビデオでパフォーマンスの問題があります。
  • ブラウザは、ビデオ内の複数のオーディオトラックで問題が発生します(多言語サポートの場合):IE 11はそれをサポートし、Firefoxは最後のトラックを再生し、Chromeは最初のトラックを再生します。

古い回答 (歴史的な目的のために保持されています):

答えは「すべてのブラウザにあるわけではない」です。<video>FirefoxとOperaは、HTML5タグ内のMP4をサポートしていません。

また、Googleは 2011年に)ChromeからH.26​​4サポートを削除することを発表しました。その理由は、GoogleがOn2TechnologiesVP8コーデックを買収したためと思われます。これは同様に強力なコーデックであり、買収後にGoogleによってロイヤリティフリーになりました。Chrome、Firefox、Operaは、VP8ビデオとVorbisオーディオで構成される WebMを介してこのコーデックをサポートしています。

おそらくすぐに、InternetExplorerSafariがH.264をサポートする唯一のブラウザになるでしょう。これはロイヤリティフリーのコーデックではなく、MicrosoftAppleは特許権者です!..

したがって、(クロスブラウザサポートのために)できることは次のとおりです。

  1. H.264がサポートされていない場合は、 Adobe Flash(プレーヤー)にフォールバックします。
  2. MP4、WebM、Oggを含む複数のエンコードされたバージョンのビデオを(順番に)作成します。

または、これらすべてを組み合わせたフォールバックメカニズム( Kroc Camenによる)の例を参照してください。

注1:WebMサポートを追加するためにこれを少し変更しました。
注2:ソースの検索中にビデオを停止するiPadのバグがあるため、上部にMP4を含める必要があります。

<!-- first try HTML5 playback: if serving as XML, expand `controls` to `controls="controls"` and autoplay likewise -->
<!-- warning: playback does not work on iOS3 if you include the poster attribute! fixed in iOS4.0 -->
<video width="640" height="360" controls>
    <!-- MP4 must be first for iPad! -->
    <source src="__VIDEO__.MP4" type="video/mp4" /><!-- IE / Safari / iOS video    -->
    <source src="__VIDEO__.WEBM" type="video/webm" /><!-- Firefox / Chrome / Opera / Android  -->
    <source src="__VIDEO__.OGV" type="video/ogg" /><!-- Firefox / Opera / Chrome10 -->
    <!-- fallback to Flash: -->
    <object width="640" height="360" type="application/x-shockwave-flash" data="__FLASH__.SWF">
        <!-- Firefox uses the `data` attribute above, IE/Safari uses the param below -->
        <param name="movie" value="__FLASH__.SWF" />
        <param name="flashvars" value="controlbar=over&amp;image=__POSTER__.JPG&amp;file=__VIDEO__.MP4" />
        <!-- fallback image. note the title field below, put the title of the video there -->
        <img src="__VIDEO__.JPG" width="640" height="360" alt="__TITLE__"
             title="No video playback capabilities, please download the video below" />
    </object>
</video>
<!-- you *must* offer a download link as they may be able to play the file locally. customise this bit all you want -->
<p> <strong>Download Video:</strong>
    Closed Format:  <a href="__VIDEO__.MP4">"MP4"</a>
    Open Formats:   <a href="__VIDEO__.WEBM">"WebM"</a>, <a href="__VIDEO__.OGV">"Ogg"</a>
</p>

「mpeg」とは、 MPEG-1またはMPEG-2を指している場合:

次にいいえ:(

于 2013-02-21T02:02:10.497 に答える