在 ubuntu linux 上使用 vlc 命令行和 html5 从模拟电视卡将电视直播流传输到 ipad 1 或 2
我的系统: 我运行 ubuntu natty,并有一个旧的模拟电视卡,winTV-go +FM。和 vlc 1.1.9.、apache2 我想要实现的目标: 获取我旧电视卡的输出,使用 vlc 进行流式传输,并将流嵌入本地站点以使用 html5 显示,这样我就可以在 ipad 1 或 2 上观看流 现状: 我已经成功地通过不同的容器和编解码器使用 vlc 进行流式传输(我不使用 GUI)。我有 3 个工作流命令,其中包括:
1: vlc -vvv v4l2:///dev/video0:width=640:height=480 :input-slave=alsa://hw:1,1 --sout '#transcode{vcodec=mp4v,acodec=mp3,vb=8000,ab=128,channels=1,samplerate=44100}:standard{access=http,mux=ts,dst=192.168.1.10:9090}'
2: vlc -vvv v4l2:///dev/video0:width=640:height=480 :input-slave=alsa://hw:1,1 --sout '#transcode{vcodec=theo,acodec=mp3,vb=8000,ab=128,channels=1,samplerate=44100}:standard{access=http,mux=ogg,dst=192.168.1.10:9080/test.ogv}'
3: vlc -v v4l2:///dev/video0:width=640:height=480 :input-slave=alsa://hw:1,1 --sout '#transcode{vcodec=h264,vb=1024,acodec=mp3,channels=1,ab=128,samplerate=44100}:standard{access=http,mux=ts,dst=192.168.1.10:9080/test.mp4}'
我可以在另一台计算机上打开所有 3 个流并在 vlc 中播放它们,侧面注释:我也可以仅作为 url 输入 *.ogv 流(http://192.168 .1.10:9080/test.ogv) 在 chrome 中显示为视频,其他 2 个流尝试作为文件下载。
到目前为止一切顺利,现在我来到了我的 html5 代码(在此处粘贴时遇到了一些麻烦,所以我使用 Pastebin 来 dsiplay 代码):
这在 chrome 中完美运行,但因为它是 ogv,所以它当然无法在 ipad 上运行,所以我需要使用 h.264/mp4支持/内置 safari,但是当使用流命令 1 或 3 时,我在 ipad 或 chrome 上没有显示任何视频。 当不使用stream-command 2(ogv命令)时,我将html5代码调整为以下之一(我已经尝试了所有3个):
<source src=http://192.168.1.10:9080/test.mp4 type=video/mp4; codecs="avc1.4D401E, mp3"'>
或者
<source src=http://192.168.1.10:9080/test.mp4 type=video/mp4'>
或者
<source src=http://192.168.1.10:9080/test.mp4'>
这些都不起作用。
中添加了 mime 类型
我还在我的 /etc/mime.types video/mp4 mp4 视频/quicktime qt mov 视频/mp4v-es 视频/ogg ogv 视频/webm webm 视频/x-matroska mpv mkv 应用程序/x-mpegURL m3u8 视频/MP2T ts application/x-mpegURL .m3u8
我如何指定 html5 代码才能使其在我的 ipad 上正确显示?有人知道吗? 顺便说一句,我也尝试过使用 ffmpeg 和分段器进行 http 苹果直播,我也能正常工作,但由于电视是连续的数据流,它不能很好地与播放列表配合使用,所以我在一段时间后停止了,您需要重新启动等,不是很方便,我希望上述工作正常,将不胜感激的帮助,提前感谢:)
My system:
I run ubuntu natty, and have an old analog TV card, the winTV-go +FM. and vlc 1.1.9., apache2
What I want to achieve:
take the output of my old tv card, stream it with vlc and have the stream embedded on a local site to be displayed with html5, so i can watch the stream on my ipad 1 or 2
Current situation:
I have managed to get streaming with vlc working (i don't use the gui) with different containters and codecs. I have 3 working stream-commands that include:
1: vlc -vvv v4l2:///dev/video0:width=640:height=480 :input-slave=alsa://hw:1,1 --sout '#transcode{vcodec=mp4v,acodec=mp3,vb=8000,ab=128,channels=1,samplerate=44100}:standard{access=http,mux=ts,dst=192.168.1.10:9090}'
2: vlc -vvv v4l2:///dev/video0:width=640:height=480 :input-slave=alsa://hw:1,1 --sout '#transcode{vcodec=theo,acodec=mp3,vb=8000,ab=128,channels=1,samplerate=44100}:standard{access=http,mux=ogg,dst=192.168.1.10:9080/test.ogv}'
3: vlc -v v4l2:///dev/video0:width=640:height=480 :input-slave=alsa://hw:1,1 --sout '#transcode{vcodec=h264,vb=1024,acodec=mp3,channels=1,ab=128,samplerate=44100}:standard{access=http,mux=ts,dst=192.168.1.10:9080/test.mp4}'
I can open all 3 streams on a different computer and play them in vlc, Note on the side: the *.ogv stream i can also just enter as an url (http://192.168.1.10:9080/test.ogv) in chrome and it displays it there as a video, the other 2 streams it tries to download as a file.
So far so good, now I come to my html5 code (had some trouble pasting it here, so i used pastebin to dsiplay the code):
this works perfectly in chrome, but because it is ogv it will of course not work on the ipad, so i need to use h.264/mp4 as that is supported/built in with safari, but when using the stream command 1 or 3 then i get no video displayed on ipad or chrome.
When not using stream-command 2 (the ogv command) I adjust the html5 code to one of the following (I have tried all 3):
<source src=http://192.168.1.10:9080/test.mp4 type=video/mp4; codecs="avc1.4D401E, mp3"'>
or
<source src=http://192.168.1.10:9080/test.mp4 type=video/mp4'>
or
<source src=http://192.168.1.10:9080/test.mp4'>
none of these work.
I have also added mime types to my /etc/mime.types
video/mp4 mp4
video/quicktime qt mov
video/mp4v-es
video/ogg ogv
video/webm webm
video/x-matroska mpv mkv
application/x-mpegURL m3u8
video/MP2T ts
application/x-mpegURL .m3u8
how do I have to specify the html5 code for it to be properly displayed on my ipad? anyone got a clue?
btw I have also tried http apple live stream using ffmpeg and segmenter and i get that working as well, but due to the fact that TV is a continuous stream of data it does not work well with the playlist, so i stops after a while and you need to restart etc, not very handy and i want the above working, would appreciate the help, thanks in advance :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
对于 HTML5 和 h.264,您必须使用 AAC 作为音频编解码器,使用 mp4 作为复用器,目前您使用 mp3 作为音频,使用 TS 作为复用器。也就是说,我还没有通过 HTML5 视频进行 VLC 直播。
我的网络直播节目的 iPad 观众正在通过 oPlayer 免费应用程序观看我的 h.264/AAC/FLV 流,我也将其用于 Flash 客户端,但我希望 HTML5 直播能够正常工作。
For HTML5 and h.264 you have to use AAC as the audio codec and mp4 as the mux, where you are currently using mp3 for audio and TS for mux. That said, I don't have VLC live streaming via HTML5 video working yet.
iPad viewers of my live web show are watching via the oPlayer free app on my h.264/AAC/FLV stream that I also use for Flash clients, but I'm hoping to get HTML5 live streaming to work.