MP4 не воспроизводится в Chrome версии 27.0

Последняя версия Chrome (версия 27.0.1453.110 м) по состоянию на 5 июня 2013 года не воспроизводит видеоролики mp4. Для примера W3Schools Video Sandbox дает мне видеоконтроль и ничего больше. (Извините, не могу опубликовать снимок экрана, только что подписавшись на StackO.)

Кто-нибудь знает, почему? и исправление?

Да:

Существует ответ вопрос, подобный этому

chrome может воспроизводить видео html5 mp4, но html5test сказал, что хром не поддерживает видеокодек mp4

и

Существует вопрос без ответа:

проблема с html5 с хром

Ответ 1

После столкновения с той же проблемой - вот некоторые из моих мыслей:

  • из-за поддержки Chrome для h264 на некоторых компьютерах, закодированные с ним видео mp4 либо не работают (бросая ошибку Parser при просмотре на вкладке Firebug/Network - в соответствии с предоставленной проблемой здесь) или сбой браузера, в зависимости от настроек кодировки
  • он несовместим - он полностью зависит от кодеков, установленных на компьютере, - хотя я не сталкивался с этой проблемой на своей машине, у нас был один в офисе, где возникла проблема (и таким образом мы использовали этот для тестирования)
  • это может быть связано с настройками Quicktime/DivX (у машины, у которой была старая версия Quicktime, чем у моей родной, мы не хотели потерять наш тестовый ПК, поэтому мы не обновили его).

Поскольку он влияет только на Chrome (другие браузеры отлично работают с VideoForEverybody), я использовал следующее:

  • для каждого файла mp4, создайте файл mp4 с кодировкой Theora (example.mp4 → example_c.mp4)
  • применить следующие js:

    if (window.chrome)
        $("[type=video\\\/mp4]").each(function()
        {
            $(this).attr('src', $(this).attr('src').replace(".mp4", "_c.mp4"));
        });
    

К сожалению, это плохой хром-хак, но эй, по крайней мере, он работает.

Ответ 2

У меня была такая же проблема. Несмотря на то, что я не получил никакого ответа, я попытался решить ее по-другому, вот что я сделал:

Сначала вставьте видео в свой html:

<video id="videoId" width="100%" autoplay loop>
  <source src="main.webm" type="video/webm">
  <source src="main.mp4" type="video/mp4">

Your browser does not support the video tag.
</video>

Затем определите, является ли браузер хромовым:

var isChrome = !!window.chrome; 
var isIE = /*@[email protected]*/false;

Если его хром, замените видео на версию webm. (Для тех, кто не сталкивался с проблемой самостоятельно: если вы вставляете как mp4, так и webm, хром не будет играть ни с одним из них, поэтому вам нужно только вставлять "webm"

if( isChrome ) {
$("#videoId").replaceWith($('<video id="videoId" width="100%" autoplay loop><source src="video.webm" type="video/webm"></video>'));
}

И что касается IE: В моем случае я заменил видео html5 изображением:

if( isIE ) {
$("#videoId").replaceWith($('<img id="videoId" src="img/video.jpg" />'));
} 

Ответ 3

Кажется, Chrome загружает первое объявленное видео. Итак, для Chrome, играющего в webMV, сначала объявите видео webMV, затем mp4 и т.д.

Ответ 4

Ответ в предыдущем посте, хотя трудно найти:

chrome может воспроизводить видео html5 mp4, но html5test сказал, что хром не поддерживает видеокодек mp4

Это связано с постепенным прекращением поддержки mp4 в Chrome в пользу открытого формата webm. В настоящее время поддержка браузера кажется ложной. См. Сообщение для подробных сведений.

Форум Cromium предоставляет дополнительную информацию о поддержке кодека.

Надеюсь, что это поможет.

Ответ 5

У меня есть эта проблема и в версии Chrome: 28.0.1500.72 на Windows7 64bit. Хотя это не влияет на ту же версию Chrome на WinXP. Из того, что я прочитал, эта проблема очень спорадична на разных хостах в зависимости от ряда переменных. Однако, благодаря некоторому быстрому jquery, я смог решить эту проблему для моих потенциальных пользователей Chrome.

Спасибо Sony Flat за то, что указали мне в этом направлении

var isChrome = !!window.chrome; 
var isIE = /*@[email protected]*/false;

if( isChrome ) {
$("#videoId").replaceWith($('<video id="videoId" width="100%" autoplay loop><source src="video.webm" type="video/webm"></video>'));
}

Ответ 6

Спасибо, eithedog. Этот код работает для меня, чтобы воспроизводить видео в Chrome с помощью тега "Видео"

if (window.chrome) {
                $("[type=video\\\/mp4]").each(function () {
                    $(this).attr('src', $(this).attr('src').replace(".mp4", "_c.mp4"));
                });
            }