Many thanks for your effort so far and for publishing this project! I
tried it right now and it is working great so far with some minor
issues. Up to now I don't know if those issues are network related or
based on recoding speed of my PC or whatever. I'll check this later.
First, I have a suggestion: You hard coded the list of file extensions
that the server is looking for in the movie directory. You should make
it configurable in the properties file, I think. As an example I have
some TS streams recorded from kaffeine with an extension of m2t. For
now, I set up some symlinks to have japelserver list them as movies,
but it would have been nice to just add the file type to a decent
config parameter.
Second, have you heard about Apple HTTP Streaming protocol? I think,
you have... but if not, it's about segmenting an audio/video stream in
smaller parts and sending them continuously over HTTP to the iphone or
any other device, which supports it.
If you're interested, have a look at these links:
http://www.ioncannon.net/programming/452/iphone-http-streaming-with-ffmpeg-and-an-open-source-segmenter/
http://www.ioncannon.net/projects/http-live-video-stream-segmenter-and-distributor/
http://svn.assembla.com/svn/legend/segmenter/ (original segmenter
code)
The cool thing about the modified segmenter from ioncannon is, that it
is able to process one movie into multiple streams with different
bitrates and then recombines them into a new stream.m3u8 file, so that
the iphone chooses the stream with the right bitrate based on the
connection quality. So you can have a 128k, 386k and 512k stream in
parallel, one stream.m3u8 and the rest is up to your phone ;-)).
I don't know but perhaps there is something you might find useful for
your work and I found it worth to mention it. What I can say about the
usage of ffmpeg and the segmenter is that the quality of the resulting
video stream is very good, even with a lower bitrate in my opinion,
and as there exists a special ffmpeg extension to gstreamer it might
be possible to improve the video quality in japelserver, too.
But, whatever way you're going to go with japelserver, I'll stay on
the line, keep up your great work! Thumbs up!
Thanks for the suggestions, I'll look into that http protocol. That
would explain why the iPhone player is requesting 3 times the m3u8
file. I was wondering why.
Has for the encoding quality, you can play with the GStreamer pipeline
to improve the quality. I just took whatever was working for this
release. The use of GStreamer instead of FFMPEG is because the
GStreamer framework is so flexible that you can do whatever you want,
like selecting any video source, connecting to your webcam for
firewire camera, etc... And also apply some effects on the pipeline.
That is a good idea to configure the filename extention into the
configuration file, that would make it handy let's say that you only
want AVI or TS or add any missing extention.
Patrick
On 12 jan, 17:50, Holger Pandel <holger.pan...@googlemail.com> wrote:
> Hi Patrick!
>
> Many thanks for your effort so far and for publishing this project! I
> tried it right now and it is working great so far with some minor
> issues. Up to now I don't know if those issues are network related or
> based on recoding speed of my PC or whatever. I'll check this later.
>
> First, I have a suggestion: You hard coded the list of file extensions
> that the server is looking for in the movie directory. You should make
> it configurable in the properties file, I think. As an example I have
> some TS streams recorded from kaffeine with an extension of m2t. For
> now, I set up some symlinks to have japelserver list them as movies,
> but it would have been nice to just add the file type to a decent
> config parameter.
>
> Second, have you heard about Apple HTTP Streaming protocol? I think,
> you have... but if not, it's about segmenting an audio/video stream in
> smaller parts and sending them continuously over HTTP to the iphone or
> any other device, which supports it.
>
> If you're interested, have a look at these links:http://www.ioncannon.net/programming/452/iphone-http-streaming-with-f...http://www.ioncannon.net/projects/http-live-video-stream-segmenter-an...http://svn.assembla.com/svn/legend/segmenter/ (original segmenter
yep, 3 times seems correct. The streaming thing from ioncannon
produces 3 streams into one stream.m3u8. By the way, I found my
streaming issue ;-) it was a pure network and pc performance problem.
After deactivating some of my desktop gadgets, everythings working
fine, even with 500k streaming to the iphone. If you dive into http
streaming you'll see that even higher bitrates are possible.
I'll try to figure out how gstreamer pipelining works even though I
have never used it so far. I understand why you chose it. Perhaps this
could also be used to live stream TV. There is an iphone app
especially for the VDR server project, with which you can control a
bunch of the video recording and live tv features of the VDR. Perhaps
one could use this app to switch to the desired program channel and
then stream it via japelserver. Maybe, maybe ;-))
Holger
> > If you're interested, have a look at these links:http://www.ioncannon.net/programming/452/iphone-http-streaming-with-f...(original segmenter
I have just commited the modification to have configurable extention
name. As for the Apple HTTP, I just figured that it would require to
have 3 streams transcoding at the same time which could kill the PC
for slower computer. Since we are working with live stream, I'm not
sure it would work. But I'll dig further to see if I can find a
workaround to start only the selected stream whitout having to start
all 3 of them at the same time.
As for TV Streams, it would work by creating one Stream for each
channel that you want to watch. Let's say that you have channel
4,5,6: Simply put TV_4, TV_5 and TV_6 as Streams, one pipeline for
each.
So from your iPhone you would be able to switch between channels.
It's just a matter of configuring the pipeline to read from the proper
channel. Would work for TV tuners and DVB cards.
For the quality of transcoding, look at the properties of x264enc
element and faac element in the pipeline:
gst-inspect x264enc
gst-inspect faac
Patrick
> > > If you're interested, have a look at these links:http://www.ioncannon.net/programming/452/iphone-http-streaming-with-f...segmenter
many thanks, I'll give the new configuration option a try as soon as
possible ;-)!
Regarding Apple HTTP, I don't think that you really need 3 streams all
the time. With the stream segmenter from ioncannon it is possible to
configure UP to 3 streams, but you can choose to use only one or two,
too. The iPhone plays them as well.
I agree with you, that a slower PC might not be able to encode 3
streams at once, but as an optional feature it could be a cool thing.
My home PC is an old Pentium IV 3Ghz with 1,5GB of RAM and when I
tried to stream live TV coming from the VDR using ioncannons setup, I
had no problems to encode 3 streams and serve them via xampp to my
iPhone. And this machine is no dedicated video stream server or media
center, it's just my plain old desktop (LinuxMint 8). BUT: Your
streaming server is much more comfortable then this xampp-blabla
setup! I extracted your archive, set some parameters in the properties
file and was ready to go!
When I have time, I'll try to figure out how TV streaming might work
in my case, although it is not that important for me. Thanks for the
hints regarding the pipeline elements. I'll look into it.
And I think I'll try to find out if it's possible to use iWebKit or
iUI to make the webpage look even more like a true iPhone app ;-))
Holger
just want to let you know, that the configurable extension is working
fine! Many thanks, very flexible ;-))
Holger
On 13 Jan., 14:44, Patrick <patrick.ball...@gmail.com> wrote:
> Hi,
>
> I've looked on different webapps to see how they were achieving the native
> look of the iPhone and it's a matter of using javascript and css files.
> Nothing more...
>
> I've looked at other projects doing Apple HTTP, the streaming part is not
> the problem since they are using pre-transcoded files. In JapelServer, I
> transcoded on the fly so this is what is requiring more CPU usage.
>
> Patrick
>
> On Wed, Jan 13, 2010 at 7:57 AM, Holger Pandel <holger.pan...@googlemail.com