fix: why is my volume so low? linux
9 Feb
recently the max volume on my laptop for some reason shifted to a lower setting. the fix?
sudo alsamixer
9 Feb
recently the max volume on my laptop for some reason shifted to a lower setting. the fix?
sudo alsamixer
12 Nov
I recently ran into a feature / bug / something while delaying audio for an application with sox. The delay effect appears to only delay a maximum of 3 seconds. Hopefully this will save someone else from scratching their head.
To delay audio use the pad effect:
sox file_in file_out pad begin_offset end_offset
begin_offset = seconds of silence (delay) to add to the beginning of file_out
end_offset = seconds of silence to add to the end of file_out
hope this helps
sid
5 Sep
Most of us love / hate / use ffmpeg. Well meet your other new best friend: Sox
From the site:
Welcome to the home of SoX, the Swiss Army knife of sound processing
programs. SoX is a cross-platform (Windows, Linux, Solaris, etc.)
command line utility that can convert various formats of computer audio
files in to other formats. It can also apply various effects to these
sound files, and, as an added bonus, SoX can play and record audio
files on many major platforms.
Sox allows you to do almost anything you could want to do with audio.
Need to build an audio file from user selected tracks? no problem.
Mix together 15 different files? no problem.
You get the point. If your using ffmpeg, then I recommend you also install sox. It’s fairly simple to use, actually its easier to use than ffmpeg IMHO.
17 Aug
Its been over a month, so i figured its time to do an after action report.
Simply put I still LOVE openSuse. Of course theres a few things that need work, but overall its a wonderful distro that I strongly recommend.
Ok so for a bit of back story I’ve been using windows since i think 3.1. When i was a kid my dad taught me to use the green screens, and i’ve been using linux off and on since about 2000. Also I’ve rarely used kde.
Umm so wheres the review
Sorry if your expecting stats, screen shots, etc. Its is pretty much nothing more than opinion. Take it as you like, I’m just hoping to share my experience – hopefully helping someone else find their ideal os sooner.
4 machines – similar experiences
I’ve installed opensuse on the 4 machines: a new toshiba core2duo laptop, a p4 (pre ht) dell laptop, an amd x2 hp desktop, and a p4 ht dell desktop.
my experience has been pretty consistent acroos all machines with the following exceptions:
now on to detials
Wifi
The wifi support in openSuse is by far awesome, for the most part it puts windows wireless support to same, and of course any and all of my past experiences with wireless on linux.
On the p4 dell I plugged in a wireless card that on ubuntu doesn’t even get reconigzed. Guess what? It worked, no drivers to install, no new device settings, it was up running and displaying my network quickly.
I have yet to have any wireless device not install and display in my connections list. This is a big plus for me as I’ve had bad experiences with wifi on ubuntu.
networking
I have yet to actually setup my network (sorry I’ve been lazy), but as far as getting a basic network setup it’s been no problem.
Theres really nothing to say here other than it works, I haven’t setup myth servers, file servers, etc. I do however have lamp servers running with no issues (disclaimer: I only use centos for development / production lamp servers).
Graphics
You knwo how they say a cool comp won’t help you pick up chicks? Their right, but it sure as hell looks cool when you bring someone over.
Compiz + emerald work damn near flawless. I’m not a gamer so i tend to get your basic video card. I’ve had no issues with eye candy. And to all you mac users: yes my eye candy kicks your eye candy in the arse.
I have the majority of my rendering set to medium levels and only experience lags when recording desktop.
You do not need a top of the line graphics to enjoy good eye candy. Running awn, compiz, and emerald barely taxes any of my systems except the dell p4 laptop which only has 512mb of ram.
Also of note: DUAL SCREEN SUPPORT! yes i know thats in caps, but seriously why can’t everyone handle dual screens like this. I briefly tried ubuntu 8.01 after a few months of 7.10 and honestly opensuse jsut feels more natural to me. Yes i prefer openSuse’s dual screen support to windows.
Eye candy
As already mentioned eye candy is everywhere in openSuse, imho they have the best layouts / designs for the bootscreen, login, everything, etc.
Speed
Fast – that simple, I experience occasional program hangs, and in total 3-4 system hangs, but then again i was messing with stuff.
So compare something already
Here is a list of os and what they do better than opensuse. Understand I’m comparing this way because it’s easier to just point out what another os does better, than to point out everything it does worst.
mint linux : media support, newbie friendly
Seriously I don’t think there’s another distro thats handling media support better than mint linux right now. That said the same support can be installed on openSuse fairly easily.
ubuntu : newbie friendly, media support
mint linux is based on ubuntu, so of course ubuntu is gonna beat openSuse in the same areas. media support is better on mint linux, but again open suse can be setup witht he same media support.
Where i think opensuse loses the majority of its newbie friendly points is yast. Yes yast is powerful, but dependency support is lacking. While ubuntu allows a newer linux user to quickly get a feel, we all know where and when its lacking so I’ll leave that alone. If openSuse improves their package management, denpency support, and loses the one-click installs for something less annoying, imho it will be on par with ubuntu. I should however point out that the stability of packages has not been a problem at all on openSuse as it was on ubuntu.
fedora : nada
I haven’t touched fedora in years, but based on feedback, theres no need to compare. If your looking at fedora look at either ubuntu or openSuse. also does anyone remember when fedora was the centos of linux?
slackware: old school
openSuse is slackware based, but much easier to use. Slackware however has more of the old school linux feel.
centos: anything lamp
centos imho is the only os to host on (well other than rhel). So simply put its better as a lamp envirnoment. Most software is tested on rhel / centos so you’ll have less install issues on centos. Lastly centos has been the most stable hosting os i’ve used. I left ubuntu after 3 days when i tried using it as a hosting envirnoment
rhel: see centos
mandrake linux:
to me openSuse just feels more linuxy – i know thats not a word but hopefully it makes since
closing thoughts
sorry I’m not really big on testing everything, just testing till you find what works best. There are plenty of new and old distros that may work for you. look around, google and ask around. openSuse might not be the best distro for you, but i highly recommend it to everyone. If your a developer that deals with lamp i highly recommend you try openSuse. I’m basing this on the fact that i’m a lamp developer.
That said my ex roommate was a windows network admin, he loved ubuntu, and prob will love opensuse. Speaking of which I should shoot him an email.
elsid Out
18 Dec
I’m doing a project to create a flash chat that will be expanded into a flash world next phase, and will eventually need video and audio for additional phases. Its no secret I’m a fms fan boy, by I’ve been trying to find cheaper alternatives because honestly, while fms by me fine to develop with, the pricetag isn’t worth it.
I looked at electro server a few months ago when it was still version 3, but now it looks really promising. check it out. I’ll try and write a basic tut once i get some free time. (famous words) till then check it out:
ElectroServer 4 – Socket-servers
Powered by ScribeFire.
6 Nov
I decided to document my last event. don’t know what this falls under, but hopefully it helps others.
so lets get started
the event
I was contacted by the client to do a live webcast for a horse show. I would setup everything needed prior to the event, and also come to the event location for a day and a half to insure everything ran smoothly, was setup, etc.
the setup
We used fms installed on a media temple extreme server. The extreme server was to be used initially because we didn’t know how many users would be watching. if and when traffic to the feed started to elevate we’d contact mt to upgrade to a nitro server.
for broadcasting we used flash media encoder
day one
I arrived at the event to learn we still needed to pick up some of the equipment to access the video feed. We got to circuit city (no fry’s nearby) and decided on the WinTV-HVR-950 model 1145 from hauppauge.
after arriving at the event, this is the day before the actual event, we found out the a/v people wouldn’t arrive till the morning of the event
so the day was pretty much spent making sure everything was running, installed, etc.
day two – seehorse politics
day two started off badly to say the least. the company doing the video “seehorse” apparently had some issues because they had originally wanted to do the web feed. this lead to us receiving the feed used for internal broadcasting which completely sucked and had no audio, we dealt with this the best we could.
luckily they also had brought in outside video people to assist with the filming of the event. Namely Thomas “Rick” Rommarito. I can’t say enough about Rick Rommarito. Rick saw our feed and told us not to worry. Rick ran us a direct feed to the video, audio, and was a great help. keep in mind that seehorse video’s staff had pretty much told me and the company that had hired me to blow off (with out saying it of course). we we’re pretty much ignored by the seehorse video team. so thank you again to Thomas “Rick” Rommarito for everything he did. He is the only reason we got a good video feed or audio. If you found this article while searching on seehorse, please don’t use them, contact rick directly at : rickbommarito[at][sbcglobal][dot][net]. Very knowledgeable a/v guy.
day two – the server
so half way through the day we finally had a good video and audio feed, after a few compatibility issues and tweaking we we’re up and running. here are screen shots from both fms admin, and top to show you how we’re on resources. the cpu usage for the fms process is wrong, so look at the actual cpu usages. for any one interested we maintained about 220-230 concurrent users throughout the day. once that number started to increase is when the server started having issues (end of day). I’d say keep users at about 200 concurrent if your going to be on an extreme.
early in the day we realized we’d need to upgrade to the nitro asap. I contacted mt, and was told we could be upgraded by the following morning. near the end of the day when i contacted mt again for an eta we found out all nitros were sold out for at least a week.
*update* – turns out there was a communication issue. one of the techs had a nitro on standby, but the night shift wasn’t in the loop. found this out the following week
edgecast to the rescue
with our upgrade plan now shot we needed a new host. after limelight told us there’s a 7 day wait, and Akamai seems to have outsourced their entire operation. speaking with someone at Akamai was just pointless, not to mention I didn’t hear back from a sales rep for two days, and that was also outsourced.
*update – I received a call from their guys two weeks later, asking what type of service i want!*
Edgecast was a different story, they knew we we’re 3 steps from being screwed and had us up and running within hours, I’ve already spoken on them in a previous post, but i wanted to make sure i mentioned them again. it normally takes a few days to get everything setup, but james seriously helped us out.
day three
day three had us with a brand new video feed, a new feed to computer setup, and edgecast streaming.
first off the edgecast streaming is great, any future events will use them, screw maintaining our own fms servers.
by the end of the day everything was finally running smoothly, and i got a flight heading back home
issues
our biggest issue was video, which luckily for us Thomas Rick Rommarito handled that.
next up was our server, we’d previously spoken to mt to make sure the nitro was ready on standby. *update – see previous update * I can’t be mad at mt though, as they have proven over and over again to be rock solid and caring. they even contacted me twice after about the nitro issue. edgecast was amazing. their support, network, and customer service was amazing. both myself and the client we’re happy with them, and now the client will be rolling out an entire service using the edgecast system, which leaves me happy to build with their system again.
after those two major issues the reoccurring issue was stream quality. horse shows are very motion intensive, and although we had a good feed, we didn’t have good lighting at all. i recommend any hauppauge product, because I use them at home, and every other encoder tested lacked the features it had. we tryed a few different one’s at the clients request, but in the end always went back to the hauppauge.
to overcome some of the lighting issues i used hauppauge’s built in features to adjust the feed which helped produce a better feed. the client had purchased a number of other encoders because he wanted to split the video / audio with another device. I’ll never again use a pyro product. once we started using the pyro adapter it created nothing but issues.
so once we had the hauppauge device back as the video source i was able to tweak settings and get a decent quality stream that had little lag, good motion, and decent to to good quality. I found the sweet spot to be at a 380 bit rate. the client wanted clear motion, but also needed the horses and people to be of good quality also staying around 380 offered the best motion and quality without being to bandwidth heavy. we broadcasted at a custom 16:9 resolution.
another issue was that the client had an outsource team that developed, and maintained the broadcast site. any changes had to go directly through them. they’re a good group, but often the need to contact them for changes, as well as time differences we’re frustrating. I tried to use the player the client already had in place, but in the end just hacked out a quick and simple player when i finally got completely frustrated.
in the end
so what did i learn? motion intensive events are a different experience than non motion intensive ones. don’t use pyro products. use edgecast, the quality of our stream when using their network was worth it.
I’ve normally ran our own fms server for broadcasts events. I won’t ever again, the cost and benefits of edgecasts service just makes setting up and maintaining a fms server pointless. It’s less of a headache, and you don’t need to monitor anything. In the end the cost of using edgecast is less when you add the man hours, maintenance, headaches, chain smoking, etc.
media temple dv extremes are good for around 200-210 concurrent users, after than your gonna start feeling it.
also something I realized : widescreen formats (16:9) are better then 4:3 for live streams. I found that when using a wide screen format the viewing experience was alot better, especially at smaller sizes than traditional 4:3 format. i was able to reduce the viewer and stream size by going to widescreen, and the viewing experience was actually better.
Server Resources
that’s all folks
yes i know there’s more than goes into live streams, but this is just me giving a brief overview from an experience. hopefully this helps someone, and wasn’t just good intent, bad execution ![]()
Sid
If you’d like to see the event streams recorded check out : http://www.iequine.com/
12 Oct
sweet, i think i posted about a guide to using google to download music. anyways audio raider does all that heavy lifting for you, and filter out spam. it uses googles ajax service service to find directories with the music your looking for
check it out:
http://www.audioraider.com/
Powered by ScribeFire.
18 Sep
he’s pretty dang through
This page was written with non-techie people in mind. If you read SlashDot or BoingBoing, if you’re active in the anti-DRM movement, etc, then this page will have nothing new for you. But if you are an “average computer user”, then you probably think that breaking DRM is too hard, too complicated, impossible, or illegal. This page is for you. With simple straightforward steps any grandmother could follow, I aim to empower the “average user” to legally break DRM, to practice their right to transcode media into different formats so that this media can be enjoyed on any device, and to make back-ups. If you have always wanted to rip, copy, and mix video the same way you can with audio, and make DVDs (or video CDs that you can watch on TV by playing on your DVD player) as easily as you make mixed CDs (using videos from your DVDs, from YouTube, from your digital camera, etc), then this page is for you.
18 Sep
If your having problems getting FairUse4Wm, Mirakagi, or commander, you can get it here:
http://thepiratebay.org/tor/3811318
tutorial for FairUse4Wm, Mirakagi, and how to use.
5 Sep
here is the code for a Proof of concept i did a few months ago. Its a demo ffmpeg and ffmpeg-php video conversion system that will also generate thumbnails. you either upload a file to the server (for large files) or select the file to upload (small files).
the code is offered as is. Please note this is a first version POC so the code is choppy and theres functionality missing, probably also alot of beta testing code.
*update: wordpress converts some of the characters into invalid code, so download / copy the source file here
http://elsid.net/wp-content/uploads/2007/10/ffmpeg_convert.php.txt
*update: the file works on php5, on at least it did when i tested. change the folder / url path to whatever your using.
you can view the source below
<?php
//error_reporting(2047);
//setup directory vars
$url_dir = "/video-convert-alpha/";
$url_folder="uploads";
$upload_dir = realpath($url_folder)."/";//"";
$url_dir="http://".$_SERVER['HTTP_HOST'].$url_dir.$url_folder."/";//echo "uploads : ". $upload_dir;
function time_stamp()
{
return gmdate("YmdHis");
}
///my trusty old upload function
function upload_from_form($file_item)
{
global $_FILES, $upload_dir, $url_dir;
//echo "uploading<br>";
if (!empty($_FILES[$file_item]['name'])) {
//echo $_FILES[$file_item]['tmp_name'];if($_FILES[$file_item]['size']*1==0){
echo "File : ".$_FILES[$file_item]['name']." is either empty or exceeds the file size limit, please reduce the size of this document, check the file, or contact Greg to increase the limit";
return "%";
}else{$file_name = str_replace(" ", "_" , $_FILES[$file_item]['name']);
$file_name = str_replace("’", "_" ,$file_name);
$file_name = str_replace("\\", "_" ,$file_name);
$file_name = str_replace("#", "_" ,$file_name);
$file_name = str_replace("&", "_" ,$file_name);
$file_name = str_replace("\"", "_" ,$file_name);
$file_name = str_replace("(", "_" ,$file_name);
$file_name = str_replace(")", "_" ,$file_name);
$file_name = str_replace("@", "_" ,$file_name);
$file_name = str_replace("\$", "_" ,$file_name);
$file_name = str_replace("*", "_" ,$file_name);
$file_name = str_replace("~", "_" ,$file_name);
$file_name = str_replace("`", "_" ,$file_name);
$file_name = str_replace("+", "_" ,$file_name);
$file_name = str_replace("=", "_" ,$file_name);
$file_name = str_replace("|", "_" ,$file_name);
$file_name= time_stamp() . "_" . $file_name;if (!file_exists($upload_dir . $file_name)) {
$file_loc = copy($_FILES[$file_item]['tmp_name'], $upload_dir . $file_name);
} else {
$file_name = time_stamp() . "_" . $file_name;
$file_loc = copy($_FILES[$file_item]['tmp_name'], $upload_dir . $file_name);
}
if ($file_loc != false) {
$file_loc = $upload_dir . $file_name;return $file_loc;
} else {
echo "Could not find file : ".$_FILES[$file_item]['name'];
return "%";} }
} else {
echo "upload failed<br>";
return "%";
}}
$flvtool2Path=’/usr/bin/flvtool2′;
$ffmpegPath=’/usr/bin/ffmpeg’;
$qualitySettings=array(‘low’=>’-ar 22050 -ab 32′,’med’=>’-ab 48k -ac 1 -ar 44100 -deinterlace -nr 500 -croptop 4 -cropbottom 4 -cropleft 8 -cropright 8 -aspect 4:3 -r 25 -b 270k -me_range 25 -i_qfactor 0.71 -g 500′,’high’=>’-ab 64k -ac 2 -ar 44100 -deinterlace -nr 500 -croptop 4 -cropbottom 4 -cropleft 8 -cropright 8 -aspect 4:3 -r 25 -b 650k -me_range 25 -i_qfactor 0.71 -g 500′);
$reqFields="email|password|quality|size|format";
$reqFields=explode("|",$reqFields);
$filesMessage="";
$formatSettings=array(‘flv’=>’-f flv -acodec mp3′);$badSubmit=false;
//check for post
if(!empty($_POST['password'])){
//check for pass and user
//echo "checking pass<br>";
if(trim($_POST['password'])==’ricecrispytreat’ && !empty($_POST['email'])){
//check submission
//echo "password excepted<br>";
for($i=0;$i<count($reqFields);$i++){
if(empty($_POST[$reqFields[$i]])){
$badSubmit=true;
echo $reqFields[$i]." not completed<br>";
break;}
}
//ok we’ve done basic checking – now lets get to work
if(!$badSubmit){
//first lets make sure we have a file
if(!empty($_POST['serverPath']) || !empty($_FILES['fileUploaded'])){
if(!empty($_FILES['fileUploaded'])){$processFile=upload_from_form(‘fileUploaded’);
}else{
$processFile=$_POST['serverPath'];
$processFile=realpath($processFile);
if(!file_exists($processFile)){
$processFile="%";
}}
}else{
$processFile=’%';
}
if($processFile==’%'){
echo " either you have entered a non valid path, or your uploaded file wasn’t in the right format<br>";}
//end file checks
if($processFile!=’%'){
//now lets see if we have thumbnails to make
if(isset($_POST['useThumbs'])){
//echo "thumbnailing<br>";
//defaults
$maxThumbnails=5;
$thumbnailsFrom=1;//if they were set
if(!empty($_POST['thumbsMax'])){
$maxThumbnails=$_POST['thumbsMax'];
$maxThumbnails*=1;
}if(!empty($_POST['thumbStart'])){
$thumbnailsFrom=$_POST['thumbStart'];
$thumbnailsFrom*=1;
}
//echo "making thumbnails";
//lets do the work
//setup ffmpeg-php object, and needed vars
$ffmpegObj = new ffmpeg_movie($processFile);
$totalTime=$ffmpegObj->getDuration();
$frameRate=$ffmpegObj->getFrameRate();
$thumbIncrements=(($totalTime*$frameRate)-($thumbnailsFrom*$frameRate))/$maxThumbnails;
$wide=$ffmpegObj->getFrameWidth();
$high=$ffmpegObj->getFrameHeight();
$startFrame=$thumbnailsFrom*$frameRate;
//echo "frame rate: ".$frameRate;
$filesMessage.="ThumbNails can be viewed at :<p>";
//echo "thumbs being processed now";
for($t=0;$t<$maxThumbnails;$t++){
//$image= @imagecreatetruecolor($wide,$high);
$thumbFile=$processFile.".".$t.".png";
$currFrame=floor($startFrame+($thumbIncrements*$t));
//echo "<br>thumb of frame $currFrame: ".$thumbFile;
$thumb=$ffmpegObj->getFrame($currFrame);if ($thumb) {
$thumbImage = $thumb->toGDImage();
if ($thumbImage) {
imagepng($thumbImage,$thumbFile);
imagedestroy($thumbImage);
}
}
//echo "<br>saved";
$thumbUrl=$url_dir."".basename($thumbFile);
$filesMessage.="<a href=’".$thumbUrl."’>".$thumbUrl."</a><br>";}
$filesMessage.="</p>";}
//echo "outside thumbs";
$newFile=substr($processFile,0,strrpos($processFile,".")).".".$_POST['format'];
$ffmpegCall=$ffmpegPath." -i ".$processFile." ".$qualitySettings[$_POST['quality']]." ".$formatSettings[$_POST['format']]." -s ".$_POST['size']." ".$newFile;$flvtool2Call=flvtool2Path." -U stdin ".$newFile."";
$encodeCall=$ffmpegCall." | ".$flvtool2Call;
exec($encodeCall);
$fileUrl=$url_dir."".basename($newFile);
$filesMessage.="<p>You Can Now View / Download Your Video @<a href=’".$fileUrl."’>".$fileUrl."</a><br></p>";
$user=$_POST['email'];
mail($user,basename($newFile),$filesMessage);
$foo=@unlink($processFile);
//echo $fileMessage;
}
}}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" enctype="multipart/form-data" name="form1" id="form1">
<table width="100%" border="1" cellpadding="1" cellspacing="1" bordercolor="#FF0000" bgcolor="#CCCCCC">
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><table width="100%" border="0" cellspacing="1" cellpadding="1">
<tr>
<td colspan="5"><font color="#ff0000"><?php echo $filesMessage;?></font></td>
</tr>
<tr>
<td colspan="5">video convert .01 alpha</td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
<tr>
<td colspan="3">this isn’t pretty, but it gets the job done. consider this a POC. More options to come, and maybe an ajax or flash interface. Probaly Flash</td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
<tr>
<td colspan="3">Access and reporting</td>
</tr>
<tr>
<td colspan="3"><label for="email">enter your email address </label>
<input type="text" name="email" id="email" />
<br />
This will be used to notify you once conversion has completed.</td>
</tr>
<tr>
<td colspan="3"><label for="password">Enter the video system password</label>
<input type="text" name="password" id="password" value=’ricecrispytreat’ /></td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
<tr>
<td colspan="3">video file—</td>
</tr>
<tr>
<td><label for="serverPath">file server path</label>
<input type="text" name="serverPath" id="serverPath" /></td>
<td>or</td>
<td><label for="fileUploaded">upload file</label>
<input type="file" name="fileUploaded" id="fileUploaded" /></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td colspan="3">thumbnails</td>
</tr>
<tr>
<td><label for="label">Make thumbnails</label>
<input type="checkbox" name="useThumbs" id="useThumbs" />
<label for="useThumbs"></label></td>
<td><label for="thumbsMax">how many</label>
<input type="text" name="thumbsMax" id="thumbsMax" />
– defaults to 5 if not set</td>
<td><label for="thumbStart">from what postion</label>
<input type="text" name="thumbStart" id="thumbStart" />
<label for="thumbsMax"> (time in seconds) so 6:05 would be 6*60+5= 365 – defaults to 0 if not set</label></td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
<tr>
<td colspan="3">video settings</td>
</tr>
<tr>
<td><label for="quality">Select quality</label>
<select name="quality" id="quality">
<option value="low">Low</option>
<option value="med">Medium</option>
<option value="high" selected="selected">High</option>
</select></td>
<td><label for="size">Select Size</label>
<select name="size" id="size">
<option value="160×120">160×120</option>
<option value="320×240" selected="selected">320×240</option>
<option value="480×360">480×360</option>
<option value="640×480">640×480</option>
<option value="720×480">720×480</option>
<option value="1024×768">1024×768</option>
<option value="1280×720">1280×720</option>
<option value="1280×1024">1280×1024</option>
<option value="1600×1200">1600×1200</option>
<option value="1920×1080">1920×1080</option>
</select> </td>
<td><label for="format">select format</label>
<select name="format" id="format">
<option value="flv" selected="selected">Flash Video</option>
</select> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Audio Settings</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><input type="checkbox" name="noVideo" id="noVideo" />
<label for="noVideo">Audio Only – not working yet</label></td>
<td> </td>
<td> </td>
</tr>
</table></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><label for="button"></label>
<input type="submit" name="button" id="button" value="Submit" /></td>
<td> </td>
</tr>
</table>
</form>
</body>
</html>
Hope this helps someone