Posts Tagged ‘wowza’

New AVChat Build (1365, October)

Saturday, October 22nd, 2011

We’ve been silent for a while now on the AVChat front but ohh boy do we have some news for you today!

Today we’re releasing build 1365 of AVChat, our flagship video chat software. This build comes to fix most of the issues that have appeared since our last build and implements many of the functionalities that have been requested in the forum.

Thank you all for the suggestions for the bug reports for the discussions we had and for helping making AVChat a better software.

Now let’s move on to what changes this new build brings upon us.

First, we have a new emoticons pack

We’ve licensed this 36 square emoticons pack and included it in this build for you guys to use.

It’s a beautiful selection of (almost) square emoticons that fit our chat interface perfectly. The old emoticons pack is still included but it’s not the default anymore.

On the same line we’ve also improved the emoticons placement script and now it can technically take emoticons of any size (however at about 20px in height they do start to overlap vertically so we’re looking at ways to fix this).

There’s a new Ignore New Private Messages button in the text chat area

We added this button to allow popular chat users to block all incoming  PM’s. Private messages will still be shown from users with who there’s already a private tab/discussion open .

The status (enabled, disabled, hidden) of this button can be controlled trough the new showIgnorePMsButton in avc_settings.xxx.

We added a way to specify a custom message to be shown when the chat is full.

The message can be changed from the language xml file:

Formatting options are now remembered between chat sessions.

Chat users will now be more easily recognized between chat sessions. Starting with this build, the font, text color, underline, bold and italic options will be remembered between chat sessions.

Support for animated flash backgrounds

You can now use animated flash backgrounds in AVChat.

To complement that we’ve also added a new way to scale these backgrounds (2 times or 3 times, etc…) trough the backgroundImageScale variable in avc_settings.xxx.

We’ve also added a opacity value in style.css for the text chat and users list area so these new beautiful animated backgrounds can be seen trough those areas.

To use an animated flash background just configure the backgroundImageUrl variable in avc_settings.xxx to point to a .swf file.

We’re looking for some such backgrounds to include in AVChat by default and some for special occasions (Halloween & Christmas). It’s hard to find good such backgrounds with proper licenses that allow us to include them in AVChat.

Admins can now kick users from only one room

You guys have aked for more control over kicking and we’ve delivered. You can now kick a user from only one room.  It does not work (yet) if the user is in only that room (but we’re on to fixing it), in this case you need to use the normal kick feature.

The default admin icon can be changed

Last year (build 900 more exactly) we’ve added the ability to change the icons for male/female/couple . Today we’re adding the ability to change the admin icon trough the new adminImageUrl variable in avc_setings.xxx.

Typing can be disabled

Some webmasters made a very good point when they told us that they do not want website visitors to be able to type. That’s why in this build we’ve added the ability to disable the text chat input text box trough the new typingEnabled variable in avc_settings.xxx.

This is only the first version of this feature, in the future we will present users with a big nice round window asking them to login or register if they want to chat.

Improvements in the video areas

We’ve added the ability to stop broadcasting completely by pressing a single CLOSE button above your webcam.

We’ve tweaked the video areas to work better (not distort) with weird resolutions that some of our clients are using.

We’ve also added the ability to specify how big broadcasting webcam area should be regardless of the resolution in which the video is streamed. This is helping a lot the clients that stream really big videos (entire screens). This is done trough 2 new size options in the video quality xml files.

Basic integration with gifts systems

Larger websites have their own gifting system. We’ve added a small Send Gift link to the side menu of the chat users. You can configure this link to open your existing SEND GIFT page customized with the sender and the receiver (person clicked in the users list) information and available gift.

This is something we will be looking more into in the future and maybe even adding our own gifts system to AVChat.

Auto size rooms tabs

Room tabs are now automatically resized to the length of the room’s name.

Other improvements:

  • Wowza 3 support (Wowza 3 has just been released yesterday, here’s the pricing)
  • Flash Media Server 4.5 support (released on 8 September)
  • Who’s typing box can be skinned and rotated (yes we’ve listened ;) )
  • When sending a message to a offline user you will be notified about it in the text chat area
  • You can now use wild cards in the badnicks xml file
  • Path to badnicks.xml can be specified (badnicksxmlurl in avc_settings.xxx)
  • Path to style.css can be specified (stylecssurl in avc_settings.xxx)
  • You can now change the color of the welcome message (welcometextcolor option in style.css)
  • You can specify how long the emoticons panel should stay up before it disappears (hideEmoteIconPanelDelay in avc_settings.xxx)
  • Ability to specify the format in which the time is hown inside the text chat (timeFormat in avc_settings.xxx)
  • Ability to customize available users limits for when creating a new room (maxUsersInRoomsLimits in avc_settings.xxx)
  • Ability to control the status of the Stop him/her from viewing you button in the side menu (stopViewerButtonEnabled in avc_settings.xxx)
  • Several new and updated icons across the chat

Lots of bug fixes:

  • fixed issue with being blocked and then unblocked prevents you from seeing that users web cam
  • fixed issue with last / in links not being included in the link
  • fixed issue with eye icon going over the lock icon in the users list area
  • fixed issue with clicking on users brings up the ban/kick panel
  • fixed ban issues on Wowza
  • fixed many issues with RTL (right to left)
  • fixed issue with resizing of non 4:3 and 16:9 video resolutions
  • fixed issue with webcam in fullscreen being able to be moved breaking the layout

New options in avc_settings.xxx

timeFormat: a string describing how the absolute time shown in the text chat area should look. The main use would be to switch between European time (18:53) and US time (6:53 pm) but there’s so much more you can do like remove seconds ( they’re shown by default) or add the day and month values. For the exact details on what values this config option can take follow Php’s date function documentation: http://php.net/manual/en/function.date.php as our implementation follows the same rules.

adminCanKickFrom1Room: configures the status (enabled, disabled, hidden) of the KICK FROM THIS ROOM button in the user side menu window. At this moment a user will not be kicked from the room if that rooms is the only room he is present in, in that case just use the normal kick function (will kick the user from the chat), this issue will be addressed in the next build. This variable applies only to admins connected trough the admin interface (admin.swf).

maxUsersInRoomsLimits: a string containing the list of numeric limits for maximum users in a room available in the drop down menu for Max Users In This Room limit when creating a room. You can use the variable to allow premium/gold/paying members to create rooms with 10 users while the free members and visitors can only create rooms with up to 2 or 5 members for example.

showIgnorePMsButton: there’s a new button in the user interface now, that allows a user to block all new incoming private messages (private messages from users with who you already have a PM window open will not be ignored). This variable controls the status of that button: 0 for disabled, 1 for enabled,  2 for hidden.

stopViewerButtonEnabled: controls the status ( 0 for disabled, 1 for enabled,  2 for hidden) of the “Stop him/her from viewing you” button in the side menu. This button is taken into consideration only for users who are looking at you/watching your stream.

badnicksxmlurl: specifies the path to the xml file containing banned words. You can point this variable to a php file that gets the words from the database and returns an xml list of banned words (use the provided badwords.xml file as a example of what you should output).

stylecssurl: specifies the path to the style.css file that controls some of  AVChat’s looks. You can point this variable to a php file that gets the CSS values from a database and returns them to AVChat.

typingEnabled: this variable a new kid on the block. It controls weather or not the user can type in AVChat. Some sites want to block the ability for visitors to type until they register. In the future, if typing is disabled for a user we will also prompt him to login or upgrade.

hideEmoteIconPanelDelay: this variable controls how much will the emote icons box in the text chat area will stay open after clicking on the emote icons button. By default is set to 3000 ms.

giftsEnabled and giftsUrl: we’ve added a new button in the side menu panel that shows up when you click a user in the users list, the Send Gift button. This button allows you to integrate AVChat with an existing gifts system that you have on your website (someone proposed using this button as a report User button and you can use it like that). These 2 variables control that button.

giftsEnabled controls the state of the button (0 for disabled, 1 for enabled,  2 for hidden).
giftsUrl controls the URL that opens when you click the button. By default giftsUrl is set to:

javascript:NewWindow=window.open(‘sendgift.php?destinationSiteId=DEST_SITEID&destinationUsername=DEST_USERNAME&senderSiteId=SENDR_SITEID&sederUsername=SENDR_USERNAME‘,’newWin‘,’width=550,height=380,left=0,top=0,toolbar=No,location=No,scrollbars=No,status=No,resizable=Yes,fullscreen=No’); NewWindow.focus(); void(0);

This is a line o javascript code and we used it so that when you click the button a pop up window shows instead of a new browser tab/window. You can control the size of the pop up window through the red numbers. In green is the name of the new window and in blue is the URL that is opened.

DEST_SITEID, DEST_USERNAME, SENDR_SITEID, SENDR_USERNAME are keywords that are automatically replaced at runtime.

sendgift.php is not provided by us and should be changed with whatever script you have that handles sending a gift on your website.

How to download and upgrade?

You can download this new build of AVChat from your client/trial area.

Steps to upgrade an old installation:

  1. overwrite all old client side files (You can keep your old language files. The missing phrases will default to English until you add them to your existing language xml file.)
  2. overwrite the media server files and restart the media server

If you have issues with it after upgrading make sure you clear your browser’s cache. If you still have issues after doing that send us an email at support@avchathq.com.

What’s next?

Well, we’re updating our integrations with respect to these new additions to AVChat and we’re also preparing a new build so stay tuned.

maxUsersInRoomsLimits

New awesome March AVChat 3 build (671)

Thursday, March 11th, 2010

The latest build of AVChat 3, made available for download today, packs some awesome new features:

  • Tool tips on most buttons in the UI.
  • Better UI (you can now re size your cam and the users list, other cams are now floating on top of the text chat area,cam borders are drawn correctly, slightly skinnier interface with default padding set to 6px).
  • YouTube videos now play (again) in the actual YouTube player.
  • Added option in the UI to show join/leave messages in the text chat.
  • Lots of small updates for the text chat (proper html encoding for html characters, better detection/highlight mechanism for links, in some cases text chat would go over YouTube videos/pictures previews).
  • Some small changes to the upload mechanism in php to go around some wierd web server security settings we’ve met : “http” not allowed in GET variables, not even HTML encoded !!!
  • Added a new video/audio quality profile for 768kbits/s streams .
  • Ghost users should now be detected and disconnected in max 17 seconds on all 3 media servers.
  • Changed the way the fps, free time, nr of viewers shows up in the cam areas.
  • Clicking the [Add IT] buttn in the YT submit button now adds the video directly.
  • Spaces in usernames are not replaced by _ anymore.
  • New option in avc_settings.xxx to disable YouTube previews.
  • Added memory usage display (off by default, you can turn it on from avc_settings.xxx)

and bug fixes:

  • The info  about who is someone watching visible in admin.swf was not exact all the time.
  • When cliking ACCEPT/DENY for someone’s request to your private stream some wierd text would fill up the text chat input box (bug introduced in build 609).
  • Window padding value in style.css now actually works.
  • Sorted out some sorting issues for the users list.
  • When a  YT movie preview was shown in the chat the whole movie was downloaded even tough you weren’t watching it.
  • private streams were not working on Wowza 2 (they were on Wowza 1.7)!

and some updates to security too:

  • Added the possibility to add an ip range for the ips from where admin.swf is allowed to connect.
  • Admins now see the ip of each user in the text chat, you can double click the ip to select it.
  • The allow localhost connections option is now available for all 3 media servers: Wowza, FMIS, Red5.
  • The Rooms List in admin.swf  now shows the ip of the creator of the room.
  • Admin can now enter closed rooms.

How to get the new AVChat 3 release

You can obtain the latest AVChat 3 build by downloading the software again ( using the download link from the delivery/trial email) and:

  • doing a clean install
    or
  • overwrite all the old files including the FMIS/Red5 server side files and the translation files

Recording High Quality Flash Video Over Slow Internet Connections Part 3 (Behaviour of client side buffer)

Thursday, April 2nd, 2009

This post is part 3 of our 3 part series on recording high quality Flash video over slow connections.

In theory whenever someone is trying to use a flash video recorder to:

  • record audio/video at a  data rate higher than the upload connection to the media server (Red5, FMS, Wowza, etc..) allows,
  • record audio/video at a data rate higher than about 1Mbit/s (which seems to be the upload/streaming limit in Flash Player)

Flash Player should buffer both the audio and video data until it can be properly sent to the video server, but what really happens is it starts buffering just the video data and keeps sending the audio data to the media server.

It does that because Flash Player thinks all streams are live (even those specifically destined for being recorded) so it tries to at least keep the audio “live” if its not possible to keep both audio+video “live”.

What happens now is that the video frames will arrive at the media server:

  1. later than the corresponding audio frame
  2. arrive after the media server has already written the corresponding audio frames to the .flv file
  3. never arrive, because Flash Player has flushed the client buffer that was holding the video data

This can cause several issues in the final .flv file:

  • missing or little video data across some sections
  • sudden increases in video frame rates (the video plays in a “fast forward” way because several video frames finally reach the server as a bundle)
  • flv files with static video, normal audio playback and the rest of the video data grouped at the end
  • flv files with large areas where you can not seek (because there is only audio data in those areas)
  • out of sync audio and video

To solve this issue, some media servers are now waiting longer for the video data to come from the client (flash video recording software) before writing the existing audio data to the .flv file:

  • Wowza Media Server and  Flash Media Interactive Server 3.5 both solve this issue out of the box.
  • Flash Media Interactive Server 3.0 can also solve this issue by adding some custom/hidden XML tags to Server.xml.
  • Red5 up to 0.9.1 has this issue and a bug has been submitted which you can follow here here.
  • Red5 1.0 attempts to fix this issue to by exposing a save data to flv treshold variable, more info on that here.

This concludes our 3 parts (part 1, part 2) series on recording high quality audio and video files over slow connections.

Next I think we will talk about increasing the audio and video quality for the average user!

28 April update: updated with latest available information on the issue and link to Red5 1.0 RC1 fix.

Recording High Quality Flash Video Over Slow Internet Connections Part 2

Monday, February 23rd, 2009

This is part 2 of our 3 part series on recording high quality Flash video over slow connections.

As explained in the first part, a big buffer should be used in the recorder flash app so that the video and audio data has where to wait before its turn comes to travel to the media server.

When the user stops the recording (by pressing a STOP button for example) most probably there still is some audio & video data in the buffer, data that has not been sent yet to the media server.

Part 2: wait for the audio and video data to reach the media server before we display any SUCCESS message to the user

Otherwise you will most probably end up with videos with missing endings and frustrated users.

Heres how stopping a recording unfolds in our flash video recorder:

  1. STOP button is pressed (or recording time limit is reached)
  2. we stop capturing data from the cam and mic
  3. we display a SAVING VIDEO message until the buffer is empty (all the data in the buffer is sent to the server)
  4. when the buffer reaches 0 we finally display the recording saved properly success message.

In code (as2) Step 2 translates in ns.attachAudio(null) followed by ns.attachVideo(null).

Step 3 and 4 (detecting when all the data has reached the media server ) can be done in several ways but we listen for a NetStream.Buffer.Empty or NetStream.Record.Stop net status event fired while ns.bufferLength == 0 .

In as3 the procedure should be similar.

In part 1 we’ve talked about using a big buffer on the client side.

In part 3 we will talk about getting the media server to properly save the video and audio data to the HDD.