我已经尝试了几种方法,但都不能使用html5播放file2.m4v,请参见屏幕截图。
但是,如果我使用VLC/Mplayer使用相同的文件,它可以很好地播放影片(没有问题)。请参阅以下代码和文件的详细信息,以了解代码的用途:
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无法播放?
发布于 2011-10-09 02:43:45
HTML5视频只是使用新元素播放特定视频格式的约定,浏览器将为其实现自己的播放器。HTML5不会提供播放器或类似的东西。
你必须寻找大多数浏览器都支持的编解码器,如果我没记错的话,在一个OGG容器中,大多数是用于视频的Theora和用于音频的Vorbis。
然后,我记得Webkit浏览器将支持Matroska容器,使用V8作为视频编解码器,使用Vorbis作为音频。
我的建议:提供了一个OGG文件,其中Theora和Vorbis分别作为视频和音频编解码器。Inside提供了一个后备,使用MKV文件与V8和Vorbis,然后,如果你可以,在MPG视频文件中使用Mpeg2和MP2 (不能想到更好的东西)作为视频和音频编解码器,后备。然后,作为最后一个回退,Flash播放器播放FLV视频文件。
超文本标记语言应该是什么样子的示例:
<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播放器。
有关支持哪些格式的提示,请访问:查看the HTML5 Video part in Wikipedia。
重要提示:在您的代码中引用的是一个绝对文件系统路径,这对于web访问者来说是完全不可访问的。也许在src中,您指的是/video/file2.m4v
。
发布于 2011-10-09 02:43:39
尝试:
<video id="myVideo" width="300" height="200" preload="auto" src="/var/www/html/video/file2.m4v" type="video/mp4" autoplay controls></video>
还可以尝试将文件重命名为file2.mp4
发布于 2011-10-09 03:21:11
HTML5是一个html5标准(换句话说,是一种规范),而不是一种技术,所以“web无法播放它”这句话暗示了您的一点误解。浏览器将根据您在<video>
标签中指定的设置对文件进行解码。值得注意的是,并不是每个浏览器和/或操作系统都有相同的编解码器可用,因此请首先验证您是否可以本机播放视频。
例如,火狐不能解码任何用H.264编解码器编码的东西,我相信这是在.m4v文件中使用的(更了解的人,请纠正我)。
最后,正如其他人指出的那样,你的道路可能是错误的。删除路径的“var”和“www”部分。
https://stackoverflow.com/questions/7698953
复制相似问题