Media Streaming CMS

WMSPanel is reporting and control cloud panel for Nimble Streamer and Wowza Streaming Engine. It’s also used as a control UI for Live Transcoder for Nimble Streamer


Kaltura, the Open Source Community provides tools such as: online video player, open source editor and open source video for websites.

Kaltura CMS
Kaltura CMS

EZserver is an Easy-to-Use Video Server to let you easily install, manage and provide video service. And, it is also integrated with IP Blocker, Player Filter, Time Shift, DVR, Subscriber Management and Middleware for IPTV / OTT and VOD service.

Ezhometech IPTV server, Video Server, IPTV player, IPTV Middleware

MEDIA CONTROL PANEL – supports all media server types including shoutcast, icecast, wowza media and windows media services.

cast control

Streamio – Online Video CMS – Managing HD video content on websites, intranets and social media networks.


ViMP is the professional Video CMS for WebTV, Social Media portals and Video Communities with mobile and HTML5 support. We also offer associated transcoding, hosting und dedicated servers.

vimp media product

Manage online videos with Brightcove’s video Content Management System (CMS). Learn how to sort, manage and organize your entire video library with ease.


Build a centralized, searchable video library with Panopto Unison. Import, edit, and manage video of any format in Panopto’s powerful video CMS.

Online Video Platform - Panopto

PHP Bulk Emailer

If you send email to 5,000 people using standard PHP tools, your ISPs might be blocked in seconds.

I think you already read below articles…

Amazon Simple Notification Service Command Lines

Theory About Bulk Emails

Emails are not working on server?

Amazon SES – Emails In Cloud

Open source – Port25

Linux Mail Servers

Email’s Major Sections

Header – From, To, Subject, Date, Message-Id
Body – HTML / Text

Server must have …

* Dedicated public static IP address
* Reverse DNS record for IP address
* Contact info in WHOIS record
* Mailbox Tracker
* SPF Records
* Signed message using DKIM
* VERP – Variable envelope return path
* Automatic Bounce Handling
* Email Scheduler
* Email Subscribe / Unsubscribe
* Keep the IPs white-listed

Limit on servers

500/per hour on the Shared servers is the limit.

Other References

PHP Cloud

Introduction to the Zend Developer Cloud

PHPCloud help to Develop, Deploy and Manage PHP Applications in to Any Cloud (Amazon, Rackspace, RightScale, IBM SmartCloud) using Zend Application Fabric.


Red5 figure out audio/video out of sync issue

I had worked Red5 WebCam application that lets users to record video clips from their webcams. The users could talk while they record clips.

I was using PHP with Zend Gdata for uploading recorded video clips to YouTube. But I had issue in FLV files generated by Red5 server, the clip’s audio / video content was out of sync. πŸ™

Code to upload Red5 FLV to YouTube

Then after few searches I got… FFMpeg might be a good option to solve this issue to convert clip from FLV to MP4. πŸ™‚


I have to add -itsoffset 00:00:01.16 before the -i, because flash player prompts user to allow or deny webcam access during the process the video begins to record. these are seconds of recording where nothing is recorded. To audio video sync add the itsoffset that tell ffmpeg to wait a second before it starts the the transcoding.

FFMpeg syntax to sync the audio and video using MP4 file:



$myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();

$file= 'tmp/'.$fileName.".flv";

// convert FLV file to MP4 using -vcodec libx264

$mp4file= 'tmp/'.$fileName.".mp4"; 

exec("/usr/bin/ffmpeg -y -itsoffset 00:00:01.166000 -i ".$file." -s 640x480 -y -strict experimental -acodec aac -ab 128k -ac 2 -ar 48000 -vcodec libx264 -r 24 -g 48 -b 520000 -threads 64 ".$mp4file);

$file = $mp4file;

$file = realpath($file);  



Other Command
# /usr/bin/ffmpeg -i “svnlabs.flv” -s 640×480 -y -strict experimental -acodec aac -ab 128k -ac 2 -ar 48000 -vcodec libx264 -vpre medium -vpre ipod640 -r 24 -g 48 -b 520000 -threads 64 “svnlabs.mp4”

Related Article:

If you would hit the mark, you must aim a little above it…

Pretty Print JSON

We can use function json_print() to explore JSON data, since JSON has no spacing or indentation. The function json_print() make JSON data to display in the human-readable format.


function json_print($json) {

    $result      = '';
    $pos         = 0;
    $strLen      = strlen($json);
    $indentStr   = '  ';
    $newLine     = "\n";
    $prevChar    = '';
    $outOfQuotes = true;

    for ($i=0; $i<=$strLen; $i++) {

        // Grab the next character in the string.
        $char = substr($json, $i, 1);

        // Put spaces in front of :
        if ($outOfQuotes && $char == ':' && $prevChar != ' ') {
            $result .= ' ';

        if ($outOfQuotes && $char != ' ' && $prevChar == ':') {
            $result .= ' ';

        // Are we inside a quoted string?
        if ($char == '"' && $prevChar != '\\') {
            $outOfQuotes = !$outOfQuotes;

            // If this character is the end of an element, 
            // output a new line and indent the next line.
        } else if(($char == '}' || $char == ']') && $outOfQuotes) {
            $result .= $newLine;
            $pos --;
            for ($j=0; $j<$pos; $j++) {
                $result .= $indentStr;

        // Add the character to the result string.
        $result .= $char;

        // If the last character was the beginning of an element, 
        // output a new line and indent the next line.
        if (($char == ',' || $char == '{' || $char == '[') && $outOfQuotes) {
            $result .= $newLine;
            if ($char == '{' || $char == '[') {
                $pos ++;

            for ($j = 0; $j < $pos; $j++) {
                $result .= $indentStr;

        $prevChar = $char;

    return $result;

// Uses....


echo json_print($json);


Related JSON Function: json_add()

Other Resources:

Knowledge Base – It is little use to dig a well after the house has caught fire… SAVE knowledge like Money πŸ˜‰