Flash, Uqbar,1 vOrbis Tertius:2
Video streaming and its Converters
As you may already know, the most recent hype in internet-media news is how to deliver video-streaming content efficiently. While there is no accepted standard for doing so, it seems that video-streaming technologies from conventional web could be used, of course with a few modification. A good alternative to provide videostreaming service in your homepage is using 'flv' (flash video format), which seems to become a ubiquitious format in the next future. This is because 'flv' is much more efficient in size, good quality, and supported by Macromedia, see tabel below [1]:
|
Player
|
Coverage
|
Installer Size
|
Formats
|
|
Flash Player
|
93 %
|
0.48 MB
|
FLV
|
|
Windows Media Player
|
61 %
|
9.66 MB
|
WMV,AVI,MP4,MPG
|
|
Real Player
|
57 %
|
11.68 MB
|
RM,RAM,AVI,MPG
|
|
Quicktime Player
|
47 %
|
11.00 MB
|
MOV,MPG,MP4
|
An obvious problem for video-content providers is how to manage and convert various contents effectively, and mostly on-the-fly. The present note is intended to discuss how to do so, albeit this is not so complete review.
A few good source
It seems that there is no good converter beside 'ffmpeg' to autoconvert your videocontent to flv format, except perhaps tcpmp (http://www.tcpmp.org), which has been publicly announced as 'opensource' media player. But it also consists ffmpeg. (If you want to find good media player for mpeg files and know good enough on C, tcpmp perhaps is a good tool).
Despite lack of good standards to do autoconvert to flv, there are always some ways to do things, including :
(i)--> ffmpeg: http://ffmpeg.sourceforge.net/index.php
It has been reported that it could be used, but not 'so perfect.'
"Here is the stream definition for ffserver.conf (also for higher resolutions):
Feed feed1.ffm
Format flv
VideoFrameRate 25
VideoSize 64x48
VideoBitRate 48
VideoCodec flv
NoAudio
"
See discussion on: http://antville.medien.uni-weimar.de/ape/stories/5098/
But not sure yet, how exactly it could be integrated online via php.
There are some problems in using this method, like not 'so perfect' streaming quality. Not sure how good is the process, but it could be like 'broken images' (not smooth). For other problems with ffmpeg which has been reported, see:
--> http://blog.gmane.org/gmane.comp.video.ffmpeg.user/day=20050810
--> http://www.phpbuilder.com/board/history/topic.php/10299440-1.html
The good news is that there is already GUI made for this ffmpeg, which can be found at: http://www.videohelp.com/tools?tool=gui4ffmpeg
(ii) --> use alternative execute file (.exe) to convert movie file into
flv inside a 'java runtime' (called by php using include). I mean,
something like an 'inverse way' of this method (flv to swf):
Inside Java:
Runtime.getRuntime().exec ("flv2swf.exe -i input.flv -o output.swf").waitFor()
see: http://www.flv2swf.com/english.htm
But don't verify whether existing executable files (to convert avi to flv) could
be used in this way (see point (v)).
(iii)--> develop 'extraengine' in C#/VBNet, so after user uploads the file (avi)
the php send it to C#/VBNet-engine --> translates to flv --> send the file
back to PHP (or flvfolder).
"Aspose.Flash developers can dynamically manipulate and generate
Flash® content directly from their ASP.Net code"
http://www.aspose.com/Downloads/Product.aspx?name=Aspose.Flash
(iv) --> Require the videocontent developer(s) to convert first by themselves
prior to upload, in order to limit the bandwidth (flv is efficient).
we can also include a guide for doing so, for instance:
http://www.macromedia.com/devnet/mx/flash/articles/flv_exporter_print.html
http://livedocs.macromedia.com/flash/mx2004/main_7_2/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Flash_MX_2004&file=00000353.html
http://www.jeroenwijering.com/?item=FLV+Video+Compression
http://www.flashvideostream.com/
http://www.flvplayer.com/questions.php
(v)--> translate 'offline' each video file to FLV using:
a) The Flash Video Exporter, which comes with Flash MX 2004 Pro, or
b) http://www.sothink.com/flashvideoencoder/index.htm , or
c) "Video to Flash Converter PRO is a batch Video to SWF converter for converting your digital videos to SWF Flash files. Video to
Flash Converter PRO provide SWF file ready for the web or ready
to be streamed across Internet connections. Batch Video to SWF Flash
files converting. Convert digital videos (AVI/ASF/WMV/MPEG) to SWF
and FLV Flash format. Video to Flash Converter PRO provide SWF/FLV
files ready for the web or ready to internet use. "
For you who require a good introduction to flv format and how it could be alternative video-streaming format in the near future, see discussion concerning 'autoconvert to flv' at:
http://flash-forum.flashdevils.com/showthread_fd/t-188828.Audio%20Video%20streaming%20problem.html
Another recent conference held at Feb 2005: "It's not the flash part that is hard":
http://www.sti-media.com/blog/archives/000101.html
Concluding note
All in all, despite lack of wide consensus for video-streaming format, it seems that ffmpeg is the best choice so far, provided we could ensure that streaming is delivered at the most-efficient as possible, and use good converter to facilitate autoconverting between various media-file formats.
Apparently, rapid changes will keep on coming in this video-streaming issues, and the only thing to be sure is that the users will see video-streaming with better quality and low-size than before. Perhaps someday you will see full videostreaming-version of your favorite movie in the size of MP4 compression files. In this way, it could be understood why iPod folks also want to bring this dream stream into reality before the end of this year.
So what do you think, friends?
Sept. 7th, 2005
VC
email:vxianto@yahoo.com
Note:
If you would like to do FLV-based content integration with industry quality software, try: PHPTurbine from http://www.blue-pac.com/products/phpturbine/ But at this time, PHP Turbine requires PHP 4 engine running on the operating systems: Windows 2003 Server family, Windows XP Professional, Windows 2000 family.
References:
[1] http://www.jeroenwijering.com/?item=FLV+Video+Compression
[2] http://klaus.geekserver.net/flash/streaming.html
[3] http://www.swift-tools.net/
[4] http://libflv.sourceforge.net/
[5]MING CVS snapshots [klaus.geekserver.net/ming]
[6] http://www.blue-pacific.com/products/download.htm
[7] http://www.actionscript.org/software/converters_to_swf/more2.shtml
[8] Riva Free converter to FLV, http://rivavx.com/?encoder