Как воспроизвести видео html5? Когда файл file.m4v? - PullRequest
6 голосов
/ 08 октября 2011

Я пробовал несколько методов, но ни один из них не воспроизводит файл2.m4v с помощью html5, см. Снимок экрана.

Но если я использую тот же файл, используя VLC / Mplayer, он воспроизводит фильм красиво (без проблем). Пожалуйста, просмотрите следующий код и подробную информацию о файле, чтобы найти код, который его использует:

enter image description here

video.php:

<html>
<head>
</head>

<body>

  <video preload="auto" autoplay="autoplay" controls>
    <source 
        src="/var/www/html/video/file2.m4v" 
            type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>    
  </video>

</body>
</html>

Найдите файл аудио / видео кодеков:

$ mplayer -vo null -ao null -frames 0 -identify file2.m4v
MPlayer SVN-r33251-4.6.0 (C) 2000-2011 MPlayer Team
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing file2.m4v.
TS file format detected.
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
TS_PARSE: COULDN'T SYNC
VIDEO MPEG4(pid=69) AUDIO AAC(pid=68) NO SUBS (yet)!  PROGRAM N. 1
ID_VIDEO_ID=69
ID_AUDIO_ID=68
FPS not specified in the header or invalid, use the -fps option.
Load subtitles in ./
ID_FILENAME=file2.m4v
ID_DEMUXER=mpegts
ID_VIDEO_FORMAT=0x10000004
ID_VIDEO_BITRATE=0
ID_VIDEO_WIDTH=352
ID_VIDEO_HEIGHT=288
ID_VIDEO_FPS=0.000
ID_VIDEO_ASPECT=0.0000
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
ID_AUDIO_FORMAT=MP4A
ID_AUDIO_BITRATE=0
ID_AUDIO_RATE=0
ID_AUDIO_NCH=0
PROGRAM_ID=1 (0x01), PMT_PID: 66(0x42)
ID_START_TIME=28315.35
ID_LENGTH=0.00
ID_SEEKABLE=1
ID_CHAPTERS=0
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Unsupported PixelFormat 61
Unsupported PixelFormat 53
Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)
==========================================================================
ID_VIDEO_CODEC=ffodivx
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 8000 Hz, 1 ch, s16le, 0.0 kbit/0.00% (ratio: 0->16000)
ID_AUDIO_BITRATE=0
ID_AUDIO_RATE=8000
ID_AUDIO_NCH=1
Selected audio codec: [ffaac] afm: ffmpeg (FFmpeg AAC (MPEG-2/MPEG-4 Audio))
==========================================================================
AO: [null] 8000Hz 1ch s16le (2 bytes per sample)
ID_AUDIO_CODEC=ffaac
Starting playback...


Exiting... (End of file)
ID_EXIT=EOF

Что еще я могу использовать для воспроизведения этого файла в браузере? Имеется ли какой-либо проигрыватель javascript, если html5 не может его воспроизвести?

Ответы [ 4 ]

8 голосов
/ 08 октября 2011

HTML5 Video - это просто соглашение для воспроизведения определенных форматов видео с новым элементом, для которого браузеры будут реализовывать собственный проигрыватель. HTML5 не обеспечит игроков или что-то в этом роде.

Вы должны искать кодеки и их содержимое, поддерживаемые большинством браузеров, которые, если я хорошо помню, в основном являются Theora для видео и Vorbis для аудио, в контейнере OGG.

Тогда я помню, что браузеры Webkit будут поддерживать контейнеры Matroska (MKV), используя V8 в качестве видеокодека и Vorbis для аудио.

Моя рекомендация: предоставить файл OGG с Theora и Vorbis в качестве видео и аудио кодеков соответственно. Внутри предоставьте запасной вариант, используя MKV-файл с V8 и Vorbis, а затем, если сможете, внутри MPG-видеофайла с использованием Mpeg2 и MP2 (не могу придумать ничего лучшего) в качестве видео- и аудиокодеков, откат. Затем, как последний запасной вариант, проигрыватель Flash воспроизводит видеофайл FLV.

Пример того, как должен выглядеть ваш HTML:

<video src="thevideo.ogg">
    <video src="firstFallback.mkv">
        <object type="video/mpeg" src="secondFallback.mpeg">
            <object
                type="application/x-shockwave-flash"
                src="player.swf?etc...">
                <p>Download <a href="videourl">the video etc...</a><br />
                or use a more modern browser to watch online, etc...</p>
            </object>
        </object>
    </video>
</video>

и т.д ...; -)

При такой конфигурации большинство (если не все) браузеры должны иметь возможность воспроизводить ваше видео, предпочитая наиболее поддерживаемый (и самый современный) формат. «Откат», пока не найдут Flash Player.

Для подсказок о том, какие форматы поддерживать: взгляните на часть HTML5-видео в Википедии .

Важно: В вашем коде вы используете абсолютный путь к файловой системе, который абсолютно недоступен для веб-посетителя. Может быть, в src вы имели в виду /video/file2.m4v.

6 голосов
/ 08 октября 2011

Попробуйте:

<video id="myVideo" width="300" height="200" preload="auto" src="/var/www/html/video/file2.m4v" type="video/mp4" autoplay controls></video>

Также попробуйте переименовать файл в file2.mp4

0 голосов
/ 08 октября 2011

Ваш HTML-код правильный, поэтому либо путь неверен, либо файл неверен, либо браузер не поддерживает m4v.

  1. / var / www / крайне подозрительно, но, как вы говорите, он работает с файлом avi, так что это не так

  2. Попробуйте использовать файл: http://ade.apple.com/movies/institute2011/hotel.m4v в src. Если он играет, то ваш m4v, вероятно, не правильно закодирован.

  3. Если вы используете Firefox или Opera, фильм не будет воспроизводиться, поскольку они не поддерживают ничего, кроме WebM и OGG

0 голосов
/ 08 октября 2011

HTML5 - это веб-стандарт (другими словами, спецификация), а не технология, поэтому фраза «html5 не может ее воспроизвести» подразумевает некоторое недопонимание с вашей стороны.Файл декодируется браузером в соответствии с настройками, указанными вами в теге <video>.Стоит отметить, что не все браузеры и / или операционные системы имеют одинаковые доступные кодеки, поэтому сначала убедитесь, что вы можете воспроизводить видео непосредственно.

Firefox, например, не может декодировать что-либо, закодированное с помощью H.264кодек, который, я полагаю, используется в файлах .m4v (кто знает лучше, поправьте меня).

Наконец, как заметил кто-то другой, ваш путь, вероятно, неверен.Удалите части пути «var» и «www».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...