Stream data (such as music) using PHP (or another language) - php

For years, I've been investigating how to create music streams from my computer. I've seen programs, but anything useful I've seen is Windows only (I use a Mac).
Eventually, I got interested in how streams work. Is there any way I could create my own stream, possibly using socket functions in PHP? Is there a PHP library for this?

Take a look at Ampache. It is a Web-based Open Source Audio file manager. It is implemented with MySQL, and PHP. It allows you to view, edit, and play your audio files via the web.

In the end it all boils down to the protocol you'd want to use. Shoutcast IMHO is plain HTTP, so to make your own stream, you just output the streams content.
To make an ogg based webradio work with my Sonos system, I have created a little transcoding wrapper around sox which is is actually written in PHP, so it may be helpful to you to serve as an example.
You'll find it here: http://www.gnegg.ch/ogg2mp3/
If you are after implementing your very own streaming protocol - maybe even UDP based, then, I'm afraid, PHP may not be the right solution for the problem - at least not as long as it has its share of problems when used for long running processes (which 5.3 may bring some help for with its integrated garbage collection)

Related

Javascript/Html5 Project - some questions

I am thinking of getting into JS/Html5 to do some web applications.
At the moment I am using Visual Studio Express 2010 (I am coming from a c#/silverlight/mssql background). Its nice. However, if I am doing html5/js I would prefer to write server side database lookup scripts in php for mysql, rather than mssql. VS does not cater for php mysql (as far as I know).
What ide is best for this? Do I need to install wamp server or somthing like that? (It needs to be free, this is just a hobby.)
Also, for non-database applications, eg simple games, how could I make my js/html5 app into as close as a downloadable app as possible? Is it possible? Downloading and unzipping a zip file is fine, if that has to be done.
The last thing I might need to know is how to save a text file to the hard drive. I think it can be done using Internet Explorer, but could you create a html page on the fly, with a copy button, which you could then instruct the user to paste into notepad, or somthing like that?
For IDEs, NetBeans is nice and simple, and works well for web stuff. You don't really need an IDE though. It won't be as helpful as it is in .NET. Plenty of web developers use simpler text editors. If you have a Mac I like TextMate.
If you need to serve files from a web server you will need a web server, but for most things you can develop just via the file system and file:// urls. You will run into problems if you're trying to do AJAX - see jQuery Ajax request from local filesystem (Windows file:///)
Downloadable apps can be pretty much implemented with the HTML5 Offline Application spec. See http://www.w3.org/TR/html5/offline.html for the formal stuff, but there are lots of examples, e.g. http://www.html5rocks.com/en/tutorials/appcache/beginner/.
As far as saving a text file, for security reasons I don't think that regular cross-platform JavaScript will let you do this. It's easy to do if you have a web server and you're serving up files and services for AJAX calls though.

PHP / FTP Client

I'm about to get my hands dirty writing an FTP wrapper for PHP, I just need to perform the basics:
read / write and append to files
list / chmod and delete files / folders
Unfortunately I only had to mess with FTP within PHP once to answer this question, and I got somewhat disappointed with the ftp extension, mainly because it ain't trivial to distinguish between files and folders and the overall speed wasn't great.
As far as I know PHP has four distinct ways of interacting with FTP servers:
Pure Socket Implementation
File Wrappers
FTP Extension
CURL Extension
Now, I don't want to code the FTP client protocol myself, so option #1 is out of the equation.
File wrappers are great if I need to do something trivial like getting a single file, but they are extremely slow if I need to perform more complex operations since each call will open its own connection.
That leaves me with the FTP and CURL extensions, and here is where I need some guidance. As I said before I am not a big fan of the FTP extension, on the other hand I've never used CURL to FTP so I can't objectively compare one with the other.
Has anyone ever tried both approaches? What are your thoughts on them? Is the CURL option faster?
Also, are there any alternatives I'm not aware of?
Have you looked at the PEAR package Net_FTP?
I've tried both for one proj. Was needed to upload some file via ftps+auth connection with encryption and authentication then to get response code and XML info, kind of XML-RPC exchanging so at the end could not even come closer to the solution with php-ftp-extension and everything was accomplished with some debugging (CURLOPT_VERBOSE) and configuring with PHP-CURL. So I vote for CURL, it is from 1997-th and works great!

Generate an image / thumbnail of a webpage using X/Gui-less linux

There exists numerous solutions on generating a thumbnail or an image preview of a webpage. Some of these solutions are webs-based like websnapshots, windows libraries such as PHP's imagegrabscreen (only works on windows), and KDE's wkhtml. Many more do exist.
However, I'm looking for a GUI-less solution. Something I can create an API around and link it to php or python.
I'm comfortable with python, php, C, and shell. This is a personal project, so I'm not interested in commercial applications as I'm aware of their existence.
Any ideas?
You can run a web browser or web control within Xvfb, and use something like import to capture it.
I'll never get back the time I wasted on wkhtml and Xvfb, along with the joy of embedding a monolithic binary from google onto my system. You can save yourself a lot of time and headache by abandoning wkhtml2whatever completely and installing phantom.js. Once I did that, I had five lines of shell code and beautiful images in no time.
I had a single problem - using ww instead of www in a url caused the process to fail without meaningful error messages. Eventually I saw the dns lookup problem, and my faith was restored.
But seriously, every other avenue of thumbnailing seemed to be out of date and/or buggy.
phantom.js = it changed my life.

how to scan image on php or javascript?

i dont know its possible or no?
i have a project in php ,
can we scan image on php or javascript or ... via scanner , is any way for that?
Assuming that the scanner is connected to the server where PHP is being executed:
Currently there's some good solutions to scan images through PHP by making use of the Open Source SANE Scanning software:
SCANPHP
A PHP Lightweight Scanning GUI which makes use of the Open Source SANE Scanning software. The PHP GUI can be installed on any Web Server as long as PHP can be run. PHP calls the scanimage command in order to provide the scan. Post scanning, the image is piped "|" to gocr / pnmtojpeg in order to provide the acquired file.
PHPSANE
phpSANE is a web-based frontend for SANE written in HTML/PHP so you can scan with your web-browser. It also supports OCR.
A code example would be:
exec("scanimage --mode Gray --resolution 150 | pnmtojpeg > /tmp/image.jpg");
You can refer to the SANE Project Homepage for further information on options available, installation steps, etc.
It's possible, but only using third-party plug-ins or applets, most of which are not free and limited to a platform (PC / Windows mostly, and some even to Internet Explorer, although there are ActiveX wrappers for other browsers, too.)
Check out the answers to this question. They should give you a good overview about what's possible.
It is impossible to use scanner from the JavaScript on the client unless you have a special browser interface for that. No major browser have built-in support for that -- only via plugins.
Here is some more info:
http://www.ciansoft.com/samples/tcxbrowser.htm
http://www.chestysoft.com/ximage/twainupload.asp

Change MP3 frequency on the fly somehow?

Does anybody know a purely PHP based way to alter the frequency of an MP3 file?
I am on shared hosting with this, so installing ffmpeg or something similar is out of the question.
If this requires actually altering the audio data, then I guess it is not possible nor feasible to do with PHP, but I was thinking maybe this is just a header setting. I don't know.
Background:
A client's website is utilizing a Flash based MP3 player to play some audio.
The client is producing the audio herself.
The trouble is that the tools that she is producing it with, and is familiar with, automatically produces MP3 files with a frequency of 48000hz, while some versions of Flash have trouble playing anything with a frequency differing from 44100khz. (See my related question here).
I would like to avoid adding yet another program to the already complex audio production process, and solve this on the web server end if possible.
I was thinking maybe this is just a header setting.
No. That is, you can probably change it in the header, if you don't mind your MP3s being played too slow or too fast with a shifted pitch.
If you want it to sound the same, you will need to re-encode. Decoding to WAV (or raw samples), resampling, then re-encoding is a possibility, and probably your only one.
Maybe the way MP3 works allows for a shortcut (like JPEG allowing for lossless rotation), but I am unaware of any such methods.

Categories