live tv stream to ipad 1 or 2 using vlc command line and html5 from analog TV card on ubuntu linux - linux

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):
pastebin html5 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 :)

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.

Related

Live streaming a web page with video/audio elements

i am trying to do a website/browser livestream on a headless linux, but couldn't find a good solution yet.
Headful example: In OBS Studio you can add a Browser Source of a web page that includes video/audio and stream this content live out.
So what i basically want is like a headless version of this.
I tried a bit with phantomjs and chrome-headless, but these tools are not supporting video or audio outputs in headless mode. If there is an alternative that can output a web page stream with video/audio would be awesome.
This output can then piped to ffmpeg and launch a rtmp stream :)
Thanks!

Recording audio on the web and sending the data to Android app

I want to capture audio in the Chrome web browser using MediaRecorder and send the encoded audio data to the Android app for playback in real-time.
I can't find any audio format that is supported on both sides. I was trying to use opus codec, but Chrome only supports webm container, and Android supports ogg.
What is the proper way of doing this? I don't want to use WebRTC. I could use some data converters/encoders, but all libraries I found are obsolete/abandoned/insecure.
The webm container format is sometimes stored in .mkv files.
Android 5+ eats pretty much any webm the Chromium MediaRecorder class delivers. If you give MediaRecorder a MediaStream that came from getUserMedia(), and ask it for the right MIME type, you'll get Opus boxed inside webm.
const mediaRec = new MediaRecorder(stream, {mimeType: 'audio/webm;codecs=opus'})
If you put that into a file, use name.webm or name.mkv to name it. Android has been able to handle it for a long time now.
The mkvtoolnix program helps you examine these webm files to see what's in them.
If this didn't address your question, please make a comment.

How to secure a video file played through Media Source Extension API?

I have made a web video player using the Media Source Extension API. The video and audio my player downloads and plays is not secure. As in you can go to the Network in Google Chrome Inspect and download the video and audio and play it through a media player. I want to make my audio and video files to be played via my video player only.
A perfect secure video files example is here. The video player: http://reference.dashif.org/dash.js/nightly/samples/dash-if-reference-player/index.html. U can insert the source in the input: https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd. And when I download the files from Network in the Google Chrome Inspect, I cannot play the video file of .m4v in VLC or else where. So I think that this is secure. The files downloaded for playback can be found here: http://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps_1280x720_4000k.
Netflix has very very secured video files where the file try isn't even defined. So can someone advise me how to secure my video and audio files to be downloaded and played from else where. Thanks
A sample of my video player project: https://drive.google.com/file/d/156mDgIltBGMkXhx4LZfShxv3A8JrwkNP/view?usp=sharing
The m4v files can be played, you just need to append them to the initialization fragment. Netflix does not use Media Source Extensions directly. They use Encrypted Media Extensions along with a DRM provider such as widevine.

Please, recommend audio player embbed in IE browser

We have stored audio sources in WOWZA server.
We are researching a audio player to playback these in Web Browser over RTMP or HTTP(HLS).
Essential features are to seek specific point and to change play rate(x2, x4...).
We have tested HTML5 audio tag, but it does not support RTMP and HLS streaming.
How about JWplayer and flowplayer? They support these two features?
Please let me know appropriate audio player.
You can use JwPLayer for audio/html5 with HLS protocol. HLS works on iOS and Android > 4.1 (only if you use aac codec, mp3 works only using progressive download)
more infos: http://www.jwplayer.com/html5/
Update
Example, with primary flash option enabled. (remember HLS with Mp3 files doesn't work on Android)
jwplayer('').setup({playlist: [{
image: 'example.png',
file:'http://www.example.com:1935/store-1/_definst_/MP3:AUDIO.mp3/playlist.m3u8',
primary: 'flash',
});
Note
To be able to use this option (HLS with flash player) you must have JW Player Premium or Enterprise Edition.

streaming audio with html5 `<audio>` tag

I am trying to stream audio on a site hosted by Dreamhost from a lecture series using the <audio> tag in html5, but without much success. The actual code is
<audio id="playerTwo" class="player" controls="controls" preload="none">
<source src="audio.ogg" type="audio/ogg; codecs='vorbis'"/>
<source src="audio.mp3" type="audio/mpeg"/>
</audio>
I also have an .htaccess file to include the correct mime-types for apache.
AddType audio/ogg .ogg
AddType audio/mpeg .mp3
The ogg files are about 8 megs and mp3 files are about 13 megs. Each file was exported from Audacity.
Everything plays fine in FF, Chrome and Safari when served locally on my windows 7 machine (running a win32 version of apache 2.2.14 and php 5.3.1).
Things do not go so well on Dreamhost. (They run apache 2.2.15 and php 5.2.14.)
FF stops playing the audio file after 5 seconds. Chrome plays the audio file, but the audio skips frequently. Safari plays the audio correctly, but the lag between clicking the play button and the audio actually starting to stream and play is about three minutes.
If instead of using the <audio> tag, I play the mp3 files from Dreamhost with a Silverlight player, they stream and play correctly.
Any suggestions about what I need to do to get the <audio> tag to work correctly. As far as I know, html5 audio is client-side technology, as is Silverlight. So, in theory, Dreamhost should have no effect on how the <audio> tag performs.
Anyway, anyone have any ideas about what is amiss.
Thanks.
Problem caused by uploading audio files through filezilla in ascii transfer type, rather than binary transfer type. The audio files were corrupted during upload, so no big surprise that they didn't play well. The surprise is that the mp3 files did play acceptably, though the ogg files did not.
That's the answer here.

Resources