Capturing and Encoding on the Cheap

November 1, 2002


Many years ago, when a station wanted to capture four, one-hour blocks of audio each day, it involved writing scripts that would interact with the GUI of the audio encoding tool (send an ALT-F to the encoder window, send the filename, send the down arrow four times). There would be problems with it, but for the most part, it worked for capturing the content. Each day the captured files would be edited by hand, manually up-loaded and then the HTML pages would be updated to show links to the new files.

I got tired of doing things manually and started looking for a better way. I left the capture program the way it was, and I wrote scripts to allow other people to edit the files automatically (the times were nearly always the same), and taught them how to upload them as well. I even created a CGI that wrote to an included HTML file, so that others could post the links to the Realmedia files without my interaction, simply by submitting a form from a browser. It still required manual labor, but it wasn't my labor, so I didn't mind nearly as much.

As time went by, some people began to mind, and I began exploring ways to automate more of the process. The script to interact with the encoder GUI was replaced with a command-line program, so there were fewer chances for something to go wrong. Because the files always needed the same amount of time removed from their beginning, I automated that as well. Then the files would be sent automatically via FTP to the server, and the links would be displayed only if the file existed. Completely automatic, but all done in a proprietary automation program.



Real Systems Real Producer has a command-line program called rmbatch, which can be set up to schedule encoding tasks.

Nowadays most of these tasks are fulfilled by the programs themselves, so users don't need to write a lot of custom code. It's almost as easy as point, click and leave.

Timing is everything

The single most important piece in this puzzle is the time source. Computer clocks are notoriously inaccurate, and this process requires capturing content from an accurate fixed schedule. If possible, use the same time source as the rest of the station, perhaps from the automation system or from a satellite feed or GPS clock. If those options aren't available, download one of the many programs designed to keep the computer's clock accurate from time sources like NIST, the Naval Observatory or Abouttime from Arachnoid.com. There are dozens of these programs available. Whichever you choose, install it, configure it to set the clock at least once an hour, and make sure it starts automatically when the computer is restarted. This will produce an accurate timebase to start from.



File-transfer programs can also be set up to automate file transfers, ensuring that the most recent file is always posted.

Schedule it: Nearly all operating systems now have a built-in scheduling program. Windows 98 offers Task Scheduler; Windows NT provides the AT command; Linux variants offer Cron; and Windows ME, XP and 2000 all have similar schedulers. If you are already familiar with it, you can even find a version of Cron for use on Windows.

Encode it: Real Systems Real Producer has built-in, command-line encoding with a program called rmbatch, so it's a natural choice for scheduled encoding (from a pre-existing file, or from a live source). After reading the manual and determining which settings to use (the user controls all of them, including bit rate, audio and video codecs, duration, filename, title, capture to a file and stream live to a server), simply create a scheduled task to run at the specified time. Check the documentation for the actual parameters, but for live encoding, it's something along the lines of this:

RMBatch.exe /L /O C:\foo.rm /T 0,1 /A 0 /V 0 /F 1 /B “My Clip”

Just set up a task with the scheduler and it is finished.

Edit it: Most task schedulers can only launch a program at the beginning of a minute, but odds are the content the user wants to encode starts 30 seconds after the minute. Simply encode more than is needed, and trim it later. Realproducer uses rmeditor, a command-line editor for encoded files. Add a second scheduled task, and remove the first 30 seconds of extraneous content. Again, check the documentation, but here's a quick usage guide:

rmeditor -i -o [-t ] [-a <author>] [-c <copyright>]</b></p><!--end paragraph--> <!--begin paragraph--><p><b>[-C <comment>] [-r <allow recording>] [-k <allow download>]</b></p><!--end paragraph--> <!--begin paragraph--><p><b>[-s <start time>] [-e <end time>] [-l <log file>] [-d <dump file>]</b></p><!--end paragraph--> <!--begin paragraph--><p><b>[-q <description>] [-n <keywords>] [-IN <allowing indexing>] [-AR <audience rating>]</b></p><!--end paragraph--> <!--begin paragraph--><p>Removing trailing content should be just as simple.</p><!--end paragraph--> <!--begin paragraph--><p>Upload it: Yes, you could spend a lot of time creating a scheduled task to upload the encoded content to the appropriate server. Or, write a command-line batch file to FTP the file and schedule it to run at the correct day and time using the operating system's built-in scheduler. It would work fine. Instead, save a lot of trouble and use an FTP program with its own scheduling function, such as WS_FTP Pro. A few easy clicks and the file is set up to be transferred without writing a single line of code.</p><!--end paragraph--> <!--begin paragraph--><p>Post it: There are many ways to display a link to the file on the station's Web page. One way is to always use the same file name for the encoded content, so the link is already on the page and the file just changes when it gets uploaded. A second way is to set up an additional scheduled FTP for the new HTML page, and have it upload after the encoded file has been uploaded. Yet another way is to use PHP, Perl or a similar language, and check for the existence of the encoded file on the server. If it exists, display the link in the page. Otherwise, it can display something else.</p><!--end paragraph--><h2>Alternate technologies</h2> <!--begin paragraph--><p>Apply these same principles to a system using Windows Media Encoder with one small change: the command-line encoding utility for Windows Media Encoder does not allow input to be from a live source. The user will have to capture the content to a .wav or .avi first by using some other command-line capture utility, and then run that file through the batch job Windows Media Encoder. The user will have to download the Windows Media 8 Encoding Utility (search the Microsoft website for wm8eutil) to get command-line ability for batch encoding, which will read something like this:</p><!--end paragraph--> <!--begin paragraph--><p><b>wm8eutil -input clip.avi -output clip.wmv</b></p><!--end paragraph--> <!--begin paragraph--><p>Serve it: There isn't much to discuss on this topic because once the encoded files are uploaded, and links have been posted to them on the website, it is automated about as much as it can be. But recent developments in server technology ask to be touched on here.</p><!--end paragraph--> <!--begin paragraph--><p>Real Networks (<a href="http://www.realnetworks.com" target="_blank">www.realnetworks.com</a>) has just released its new Helix Universal Server, which has the ability to stream nearly any file format: Real Audio (.rm), Real Video (.rm, .rmvb), Real Pix (.rp), Real Text (.rt), Macromedia Flash (.swf), Windows Media (.asf, .wma, .wmv), Quicktime (.mov), MPEG-1, MPEG-2, MPEG-4, MP3 and others with the addition of plug-ins. This means there can be a Real Networks and a Windows Media stream without the need for two separate streaming servers.</p><!--end paragraph--> <!--begin paragraph--><p>The drawback of this single-server system is that Real Server licenses will now cover Windows Media streams as well. The user now has to pay for concurrent streams of Windows Media, something that previously wasn't a concern. With a stand-alone Windows Media server, there can be as many streams as desired, all license-free and cost free.</p><!--end paragraph--> <!--begin paragraph--><p>This is just the basis of a system with much more potential. For example, with these tools someone has to set up four scheduled tasks each time he wanted to encode, upload and post anything — fine for a one-time broadcast, but not ideal for a show that airs Monday through Friday. Write simple scripts to automatically name the encoded file for the date and time it gets encoded, and not have to set up a scheduled task for each encoded file. I have one setup that encodes 24 one-hour files each day, and makes a month's worth of audio available online, all with one scheduled task.</p><!--end paragraph--> <!--begin paragraph--><p><table align="right" width="255"> <tr> <td> <hr color="ff0000" /> <img src="/oldradimage/images/archive/1102/211br2204.jpg" /><br /> <font color="0000FF" size="-2">Most encoding software packages provide utilities to automate some functions.</font> <hr color="ff0000" /> </td> </tr> </table> </p><!--end paragraph--><h2>Automation programs</h2> <!--begin paragraph--><p>If there is something that simply cannot be scheduled because it doesn't have a built-in scheduler, and there is no command-line version of the program, there are a couple of programs designed to interact with just about anything else on a machine.</p><!--end paragraph--> <!--begin paragraph--><p>Winbatch from Wilson Windowware (<a href="http://www.winbatch.com" target="_blank">www.winbatch.com</a>) is an interpreter-based language that can be used to automate nearly any Windows task. It has extenders for the language to let you interact with network servers (Microsoft or Netware), ODBC databases, printers, serial and parallel ports. Winbatch makes it a snap to name files based on date and time of encoding.</p><!--end paragraph--> <!--begin paragraph--><p>Automize from Hitek Software (<a href="http://www.hiteksoftware.com" target="_blank">www.hiteksoftware.com</a>) is a cross-platform automation package written primarily in Java, so it can be used on Windows machines, Macs and even Linux machines with a GUI. It should also be able to automate most redundant tasks.</p><!--end paragraph--> <!--begin paragraph--><p>No matter what route the station chooses, be sure to write down what is and what is not automated. Six months later, when there is a problem, it's nice to have notes about what is supposed to be happening before you try to fix it.</p><!--end paragraph--> <!--begin paragraph--><p><hr /> </p><!--end paragraph--> <!--begin paragraph--><p><i>Harrison is senior applications developer for Toad.net, an Internet service provider in Severna Park, MD.</i></p><!--end paragraph--> <!--begin paragraph--><p><hr /></p><!--end paragraph--> </div></div><!--end page--><!--endclickprintinclude--><!-- Pagination at the bottom of the page --><div class="pagination"></div><!-- /Pagination --><br /><div class="icopyCont"><p class="icopy"><!-- template test --></p></div><!--#include virtual="/radio_rating_widget.txt" --><!--#include virtual="/article_commenting.txt" --><!--#include virtual="/most_recent.txt" --><!-- GOOGLE AD CREATIVE START --><script type="text/javascript"><!-- function google_ad_request_done(ads) { var s = ''; if (ads.length == 0) { return; } s += '<div class="googlead">'; s += '<p class="googleadTitle"><span>' + google_attribution_text + '</span></p>'; for (i = 0; i < ads.length; ++i) { s += '<p><a href="' + ads[i].url + '" >' + ads[i].line1 + '</a><br>' + ads[i].line2 + ' ' + ads[i].line3 + '<br> <span class="googleadViewLink">' + ads[i].visible_url + '</span></p>'; } s += '</div>'; document.write(s); return; } // need to customize the colors in the ad unit? do it here with these vars google_attribution_text = 'Ads by Google'; google_ad_output = 'js'; google_max_num_ads = '3'; google_ad_client = 'ca-penton_html'; google_ad_channel = 'fixed-bottom-js'; google_safe = 'high'; // turn this to 'off' when launching! google_ad_test = 'off';// --></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> <!-- GOOGLE AD CREATIVE END --><!-- San Template Test 10/14/2011 --> </td> </tr> </table> </div> <!-- /POST BODY --> <!--//// SHARE THIS POST /////--> <div class="share-this-post row clearfix"> <h4>Share This Post</h4> <div class="post-share bot"> <!--**** MAKE SURE TO CHANGE ADDTHIS:URL ****--> <div class="addthis_toolbox addthis_counter_style clearfix"> <a addthis:url='http://www.radiomagonline.com/misc/0082/capturing-and-encoding-on-the-cheap/26101' fb:like:layout="button_count" class="addthis_button_facebook_like"></a> <a addthis:url='http://www.radiomagonline.com/misc/0082/capturing-and-encoding-on-the-cheap/26101' class="addthis_button_tweet"></a> <a addthis:url='http://www.radiomagonline.com/misc/0082/capturing-and-encoding-on-the-cheap/26101' class="addthis_counter addthis_pill_style"></a> </div> </div> </div> <!--//// WIRE /////--> <!--// THE WIRE // --> <div class="wire clearfix row"> <span><a href="/thewire" id="dnn_ArticleLeft1_TheWire_A1" class="theWireMarquee"><strong>The Wire:</strong> </a></span> <div class="marquee"> <div class="wire-prev"></div> <div class="wire-next"></div> <div class="wire-wrap"> <dl id="bc-wire"> <dd><a href='/thewire/registration-now-open-for-138th-audio-engineering-society-international-convention-in-warsaw-poland/7003/view'>Registration Now Open for 138th Audio Engineering Society International Convention in Warsaw, Poland</a></dd> <dd><a href='/thewire/roland-corporation-us-appoints-clyne-media-to-augment-public-relations-and-editorial-efforts/7002/view'>Roland Corporation U.S. Appoints Clyne Media to Augment Public Relations and Editorial Efforts</a></dd> <dd><a href='/thewire/rrf-embarks-on-new-strategic-business--marketing-plan-for-ongoing-growth-in-2015-and-beyond/7001/view'>RRF Embarks on New Strategic Business & Marketing Plan For Ongoing Growth in 2015 and Beyond </a></dd> <dd><a href='/thewire/guitar-center-opens-new-store-and-lessons-studio-in-champaign-illinois/7000/view'>GUITAR CENTER OPENS NEW STORE AND LESSONS STUDIO IN CHAMPAIGN, ILLINOIS</a></dd> <dd><a href='/thewire/the-aes-brings-audio-issues-to-light-at-sxsw-2015/6999/view'>The AES Brings Audio Issues to Light at SXSW 2015</a></dd> <dd><a href='/thewire/gatesair-highpower-transmitter-improves-coverage-efficiency-for--nova-fm-in-brazil/6998/view'>GatesAir High-Power Transmitter Improves Coverage, Efficiency for Nova FM in Brazil</a></dd> <dd><a href='/thewire/symetrix-busy-2015-training-program-to-highlight-the-advantages-of-dantebased-dsp/6997/view'>Symetrix’ Busy 2015 Training Program to Highlight the Advantages of Dante-Based DSP</a></dd> <dd><a href='/thewire/gc-pro-helps-source-gear-for-las-vegas-clark-county-library-district-learn-to-dj-program/6996/view'>GC Pro Helps Source Gear for Las Vegas Clark County Library District “Learn to DJ” Program</a></dd> <dd><a href='/thewire/the-recording-academy-producers--engineers-wing-annual-grammy-week-event-honors-nile-rodgers-and-musics-creative-technical-wizards/6995/view'>The Recording Academy® Producers & Engineers Wing® Annual GRAMMY® Week Event Honors Nile Rodgers and Music's Creative Technical Wizards </a></dd> <dd><a href='/thewire/the-audio-engineering-societys-57th-international-conference-leads-the-industry-into-the-era-of-immersive-sound/6994/view'>The Audio Engineering Society’s 57th International Conference Leads the Industry into the Era of Immersive Sound</a></dd> </dl> </div> </div> </div> <div class="post-hd row"> <h1>Comments</h1> </div> <div id="disqus_thread"></div> <script type="text/javascript"> /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */ var disqus_shortname = 'radiomagonline'; // required: replace example with your forum shortname /* * * DON'T EDIT BELOW THIS LINE * * */ (function () { var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js'; (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); })(); </script> <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript> <script type="text/javascript"> /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */ var disqus_shortname = 'radiomagonline'; // required: replace example with your forum shortname /* * * DON'T EDIT BELOW THIS LINE * * */ (function () { var s = document.createElement('script'); s.async = true; s.type = 'text/javascript'; s.src = '//' + disqus_shortname + '.disqus.com/count.js'; (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s); }()); </script> </div> <!-- /INNER PAD --> </article> </section> <script> $(document).ready(function () { $("#dnn_ArticleLeft1_ArticleDetail").find('base').removeAttr('target'); //$("#aswift_0_expand").css("display", "none"); $("ins").remove(); }); </script> <section class="right-rail above-wire"> <div style="padding-bottom:15px;"> <script language="JavaScript"> <!-- OAS_AD('Position1'); //--> </SCRIPT> </div> <div style="margin-top: 20px;"></div> <!--//// TABBED ////--> <div class="widget tabbed inside-issue events industry"> <div id="tab-container-1"> <ul id="tab-container-1-nav" class="clearfix tabbed-nav"> <li><a href="#tab1">Most Read<div class="tab-arrow-down"></div> </a></li> <li class="last"><a href="#tab2">Recent Comments<div class="tab-arrow-down"></div> </a></li> </ul> <div class="tab" id="DivMostRead"> <div class="cols-holder clearfix"> <div class="col col01 img-holder left"> <img src="/Portals/0/SBE logo thumbnail.jpg" /> </div> <div class="col col02 article-holder right"> <div class="group"> <article> <span class="gold">Industry</span> <h4><a href='/industry/0003/sbe-offers-exam-at-nab-show/36286'>SBE Offers Exam at NAB Show</a></h4> </article> </div> </div> </div> <div class="cols-holder clearfix"> <div class="col col01 img-holder left"> <img src="/Portals/0/WO Streaming thumbnail.jpg" /> </div> <div class="col col02 article-holder right"> <div class="group"> <article> <span class="gold">Products</span> <h4><a href='/products/0002/wideorbit-releases-wo-streaming/36287'>WideOrbit Releases WO Streaming</a></h4> </article> </div> </div> </div> <div class="cols-holder clearfix"> </div> <div id="dnn_RightControl_mostRead_divMoreLink" class="cols-holder clearfix last"> <div class="col col01 img-holder left"> <!--<img src="/images/tabbed.png">--> </div> <div class="col col02 article-holder right"> <a href="" style="display:none;" class="see-all">More →</a> <!--<div class="group">--> <!-- <article>--> <!-- <span class="gold">Industry News</span>--> <!-- <h4><a href="">Seacrest Studios Comes to Cincinnati Children's Hospital</a></h4>--> <!-- </article>--> <!--</div>--> </div> </div> </div> <!-- /TAB --> <div class="tab" id="DivMostreadRecentComment"> <div class="cols-holder clearfix"> <span id="dnn_RightControl_mostRead_lblRecentComments" style="color:red; font:13px; font-weight:bold; padding:10px;">No records found</span> </div> </div> <!-- /TAB --> </div> <!-- / TAB CONTAINER --> </div> <div style="margin-top: 20px;"></div> <script language="JavaScript"> <!-- OAS_AD('Position2'); //--> </SCRIPT> <div style="margin-top: 20px;"></div> <!---//// NEWSLETTER ////--> <div class="widget newsletter"> <div class="red-tab clearfix"><span>Newsletter Signup</span></div> <div class="widget-bd"> <h4>Free E-Newsletters</h4> <span class="sub">Subscribe to our FREE eNewsletters</span> <form class="clearfix"> <fieldset> <input name="dnn$RightControl$newsletter$txtEmailAddress" type="text" id="dnn_RightControl_newsletter_txtEmailAddress" class="border-box emailtext" placeholder="ENTER YOUR EMAIL ADDRESS" /> <input type="submit" name="dnn$RightControl$newsletter$btnNewsletter" value="Subscribe" onclick="opentab(); return false;" id="dnn_RightControl_newsletter_btnNewsletter" class="red-button" /> </fieldset> <!-- /LEFT --> <!-- /RIGHT --> </form> </div> </div> <!-- /NEWSLETTER --> <script type="text/javascript"> function opentab() { var value = $('#dnn_RightControl_newsletter_txtEmailAddress').val(); if (value == "") { alert("Please enter email address"); return false; } else if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(value) == false) { alert("Email entered is invalid"); return false; } else { window.open('https://www.b2bmediaportal.com/nbmedia/subscribe.aspx?b=RDM&eml=' + value); } } </script> <div class="widget events inside-issue"> <div class="red-tab"> <span>Inside The Current Issue</span> <a href='/currentissuearchive'>Archive →</a> </div> <div class="widget-bd"> <div id="dnn_RightControl_currentIssue_divRecords" class="cols-holder clearfix"> <div class="col col01 img-holder left"> <a href="/currentissue"> <img src="/Portals/0/RADIO_mag_201502_smCover_200px.jpg" id="dnn_RightControl_currentIssue_imdThumbnail" /></a> </div> <div class="col col02 article-holder right"> <div class="group"> <article> <h4><a target="_blank" href='/deep-dig/0005/viewpoint-loudness-the-unwinnable-war/36230'>Viewpoint: Loudness, The Unwinnable War</a></h4> </article> <article> <h4><a target="_blank" href='/deep-dig/0005/trends-in-technology-build-a-reliable-transmitter-site/36226'>Trends In Technology: Build a Reliable Transmitter Site</a></h4> </article> <article> <h4><a target="_blank" href='/facility-showcase/0032/facility-showcase-iheartmedia-portland-revisited/36228'>Facility Showcase: iHeartMedia Portland Revisited</a></h4> </article> <article> <a href="/currentissue" id="dnn_RightControl_currentIssue_anchCurrentissue" class="see-all">More →</a> </article> </div> </div> </div> </div> </div> <!---//// EVENTS ////--> <div class="widget events"> <div class="red-tab"> <span>Events</span> <a id="dnn_RightControl_Events_eventLink" href="/content/events/83">See All Events →</a> </div> <div class="widget-bd"> <div class="group"> <article> <h4><a href='/events/0083/nrb-72nd-annual-convention--exposition/36224'>NRB 72nd Annual Convention & Exposition</a></h4> <p>Feb 21st-24th, Nashville, TN</p> </article> </div> <div class="group"> <article> <h4><a href='/events/0083/2015-nab-show/36220'>2015 NAB Show</a></h4> <p>April 11th-16th, Las Vegas</p> </article> </div> <div class="group"> <article> <h4><a href='/events/0083/ibs-international-conference/36221'>IBS International Conference</a></h4> <p>March 6th-8th, New York</p> </article> </div> <div class="group"> <article> <h4><a href='/events/0083/aba-engineering-academy-seminar/36267'>ABA Engineering Academy Seminar</a></h4> <p>March 9-10, 2015</p> </article> </div> </div> </div> </section> </div> </div> <div id="dnn_ContentPane" class="DNNEmptyPane"></div> <div class="people row"> <div class="wrapper"> <div class="pad"> <em><strong>News</strong> Feed</em> <a class="people-prev"></a> <a class="people-next"></a> <div class="news_feed"> <div id="bc-people"> <div class="slide"> <a href='/industry/0003/connecticut-broadcasters-offer-scholarships/36278'> <img src='/Portals/0/CBA logo thumbnail.jpg'></a> <div class="p-caption"> <h5><a href='/industry/0003/connecticut-broadcasters-offer-scholarships/36278'>Connecticut Broadcasters Offer Scholarships</a></h5> </div> </div> <div class="slide"> <a href='/streaming/0023/borrell-report-predicts-significant-digital-revenue-growth/36276'> <img src='/Portals/0/RAB logo thumbnail.jpg'></a> <div class="p-caption"> <h5><a href='/streaming/0023/borrell-report-predicts-significant-digital-revenue-growth/36276'>Borrell Report Predicts Significant Digital Revenu...</a></h5> </div> </div> <div class="slide"> <a href='/industry/0003/michigan-broadcasters-say-past-president-has-died/36275'> <img src='/Portals/0/carl e lee thumbnail.jpg'></a> <div class="p-caption"> <h5><a href='/industry/0003/michigan-broadcasters-say-past-president-has-died/36275'>Michigan Broadcasters Say Past President has Died</a></h5> </div> </div> <div class="slide"> <a href='/fcc/0019/fcc-votes-in-favor-of-regulating-internet-under-title-ll-rules/36270'> <img src='/Portals/0/FCC logo thumbnail.jpg'></a> <div class="p-caption"> <h5><a href='/fcc/0019/fcc-votes-in-favor-of-regulating-internet-under-title-ll-rules/36270'>FCC Votes in Favor of Title II Rules</a></h5> </div> </div> <div class="slide"> <a href='/industry/0003/mt-wilson-tower-site-for-sale/36268'> <img src='/Portals/0/generic istock tower thumbnail.jpg'></a> <div class="p-caption"> <h5><a href='/industry/0003/mt-wilson-tower-site-for-sale/36268'>Mt. Wilson Tower Site for Sale</a></h5> </div> </div> </div> <!-- /BC PEOPLE --> </div> </div> <!-- /PAD --> </div> <!-- /WRAPPER --> </div> <div align="center" style="background-color: #ccc;padding: 15px;"> <script language="JavaScript"> <!-- OAS_AD('Bottom'); //--> </SCRIPT> </div> <div class="network row"> <div class="wrapper"> <div class="pad clearfix"> <div class="block"> <div class="inner-pad"> <a target="_blank" href="http://www.radioworld.com/" class="thumb"><img style="padding-bottom:10px;" src="/images/logo_radioworld.png"></a> <div class="story_text"> <p> <article> <a target="_blank" href='http://www.radioworld.com/TabId/64/Default.aspx?ArticleId=274880'>Preserve Radio History, Together</a> </article> </p> </div> <div class="story_text"> <p> <article> <a target="_blank" href='http://www.radioworld.com/TabId/64/Default.aspx?ArticleId=274875'>WideOrbit Releases WO Streaming</a> </article> </p> </div> <div class="story_text"> <p> <article> <a target="_blank" href='http://www.radioworld.com/TabId/64/Default.aspx?ArticleId=274877'>SBE Exam at NAB Show</a> </article> </p> </div> <div class="story_text"> <p> <article> <a target="_blank" href='http://www.radioworld.com/TabId/64/Default.aspx?ArticleId=274879'>FCC Full Court Press at NAB Show</a> </article> </p> </div> <div class="story_text"> <p> <article> <a target="_blank" href='http://www.radioworld.com/TabId/64/Default.aspx?ArticleId=274870'>WorldDMB Studies Growth of In-Car DAB Radio </a> </article> </p> </div> </div> </div> <div class="block"> <div class="inner-pad"> <a target="_blank" href="http://www.tvtechnology.com/" class="thumb"><img src="/images/logo_tvtech.png"></a> <div class="story_text"> <p> <article> <a target="_blank" href='http://www.tvtechnology.com/article/transferring-sd-video-a-conversation-with-mike-weiss/274881'>Transferring SD Video: A Conversation with Mike Weiss</a> </article> </p> </div> <div class="story_text"> <p> <article> <a target="_blank" href='http://www.tvtechnology.com/article/bexel-opens-new-york-city-office/274873'>Bexel Opens New York City Office</a> </article> </p> </div> <div class="story_text"> <p> <article> <a target="_blank" href='http://www.tvtechnology.com/article/egripment-helps-cctv-ring-in-chinese-new-year/274872'>Egripment Helps CCTV Ring in Chinese New Year</a> </article> </p> </div> <div class="story_text"> <p> <article> <a target="_blank" href='http://www.tvtechnology.com/article/gearing-up-for-the--nab-show/274871'>Gearing Up for the 2015 NAB Show</a> </article> </p> </div> <div class="story_text"> <p> <article> <a target="_blank" href='http://www.tvtechnology.com/article/what-tom-said-hollywood-stays-in-control-for-now/274583'>What Tom Said: Hollywood Stays In Control (For Now)</a> </article> </p> </div> </div> </div> <div class="block"> <div class="inner-pad"> <a target="_blank" href="http://www.avnetwork.com/" class="thumb"><img style="padding-bottom:10px;" src="/images/logo_avn.png"></a> <div class="story_text"> <p> <article> <a target="_blank" href='http://www.avnetwork.com/latest/0013/tightrope-media-systems-and-brightsign-expand-partnership/94678'>Tightrope Media Systems and BrightSign Expand Partnership</a> </article> </p> </div> <div class="story_text"> <p> <article> <a target="_blank" href='http://www.avnetwork.com/latest/0013/dale-pro-audio-studer-team-on-vista-1-digital-console/94677'>Dale Pro Audio, Studer Team on Vista 1 Digital Console</a> </article> </p> </div> <div class="story_text"> <p> <article> <a target="_blank" href='http://www.avnetwork.com/av-technology/0002/major-brands-gain-lcd-tv-market-share/94676'>Major Brands Gain LCD TV Market Share</a> </article> </p> </div> <div class="story_text"> <p> <article> <a target="_blank" href='http://www.avnetwork.com/av-technology/0002/christie-next-gen-digital-signage-at-digital-signage-expo/94675'>Christie Next-Gen Digital Signage at Digital Signage Expo</a> </article> </p> </div> <div class="story_text"> <p> <article> <a target="_blank" href='http://www.avnetwork.com/av-technology/0002/samsung-acquires-yesco-to-add-led-to-portfolio/94673'>Samsung Acquires YESCO to Add LED to Portfolio</a> </article> </p> </div> </div> </div> <div class="block"> <div class="inner-pad"> <a target="_blank" href="http://www.c2meworld.com/" class="thumb"><img style="padding-bottom:10px;" src="/images/logo_c2me.png"></a> <div class="story_text"> <p> <article> <a target="_blank" href='http://www.c2meworld.com/creation/finding-focus-with-the-capabilities-of-apple-final-cut-pro-x/'>Finding ‘Focus’ with the Capabilities of Apple Final Cut Pro X</a> </article> </p> </div> <div class="story_text"> <p> <article> <a target="_blank" href='http://www.c2meworld.com/creation/almost-half-of-us-homes-will-own-a-4k-tv-by-2020/'>Almost Half Of US Homes Will Own A 4K TV By 2020</a> </article> </p> </div> <div class="story_text"> <p> <article> <a target="_blank" href='http://www.c2meworld.com/creation/director-john-boorman-returns-to-his-youth-with-queen-and-country/'>Director John Boorman Returns to His Youth with ‘Queen and Country’</a> </article> </p> </div> <div class="story_text"> <p> <article> <a target="_blank" href='http://www.c2meworld.com/consumption/millennials-find-youtube-content-more-entertaining-relatable-than-tv-study/'>Millennials Find YouTube Content More Entertaining, Relatable Than TV: Study</a> </article> </p> </div> <div class="story_text"> <p> <article> <a target="_blank" href='http://www.c2meworld.com/creation/pew-study-local-tv-still-go-to-news-source/'>Pew Study: Local TV Still Go-To News Source</a> </article> </p> </div> </div> </div> </div> <!-- /PAD --> </div> <!-- /WRAPPER --> </div> <div class="push"></div> </section> <!--============================ FOOTER ============================--> <footer class="global"> <div class="wrapper"> <div class="pad "> <div class="top-row clearfix"> <div class="col col-1"> <nav> <a href="/multisection/products/2">Products</a> <a href="/multisection/industry/3">Industry</a> <a href="/multisection/trends/4">Trends</a> <a href="/multisection/deep-dig/5">Deep Dig</a> <a href="/multisection/gallery/6">Gallery</a> <a target="_blank" href="https://www.b2bmediaportal.com/Dynamicregister/Register.aspx?fid=RDMFD&key=J15WEB">Subscribe</a> </nav> </div> <div class="col col-2"> <a target="_blank" href="https://www.b2bmediaportal.com/Dynamicregister/Register.aspx?fid=RDMFD&key=J15WEB">Subscribe</a> <a target="_blank" href="https://www.b2bmediaportal.com/nbmedia/subscribe.aspx?b=RDM">Newsletter Signup</a> <a href="http://myradiomag.com/" target="_blank">Customer Service</a> <a href="/rss">RSS Feed</a> <a href="/currentissuearchive">Archive</a> <a href="/currentissue">Current Issue</a> <a href="/login" id="dnn_Footer1_anchlogin">Login</a> </div> <div class="col col-3"> <a href="http://www.newbaymedia.com/privacy-policy/" target="_blank">Privacy Policy</a> <a href="http://www.newbaymedia.com/terms-and-conditions/" target="_blank">Terms of Use</a> <a href="http://www.newbaymedia.com/broadcastvideo/" target="_blank">About Us</a> <a href="http://www.newbaymedia.com/contact-us-2/" target="_blank">Contact Us</a> <a href="http://www.newbaymedia.com/contact-us/broadcast-video-group-sales-contacts/" target="_blank">Advertise</a> </div> <div class="col-hide select-menu-holder"> <form class="select-menu"> <!-- set the option value to the page location like "/about-us" --> <select onchange="window.location.assign(this.options[this.selectedIndex].value)"> <option>More</a> <option value="https://www.b2bmediaportal.com/Dynamicregister/Register.aspx?fid=RDMFD&key=J15WEB">Subscribe</a> <option value="https://www.b2bmediaportal.com/nbmedia/subscribe.aspx?b=RDM">Newsletter Signup</a> <option value="http://myradiomag.com/">Customer Service</a> <option value="/rss">RSS Feed</a> <option value="/currentissuearchive">Archive</a> <option value="/currentissue">Current Issue</a> <option value="http://www.newbaymedia.com/privacy-policy/">Privacy Policy</a> <option value="http://www.newbaymedia.com/terms-and-conditions/">Terms of Use</a> <option value="http://www.newbaymedia.com/broadcastvideo/">About Us</a> <option value="http://www.newbaymedia.com/contact-us-2/">Contact Us</a> <option value="http://www.newbaymedia.com/contact-us/broadcast-video-group-sales-contacts/">Advertise</a> </select> </form> </div> <div class="col col-4"> <ul class="socials"> <li class="fb-link"><a target="_blank" href="http://www.facebook.com/RadioMagazine"></a><span>Facebook</span></li> <li class="twtr-link"><a target="_blank" href="http://www.twitter.com/radiomagazine"></a><span>Twitter</span></li> <li class="rss-link"><a target="_blank" href="/rss"></a><span>RSS</span></li> <li class="yt-link"><a target="_blank" href="http://www.youtube.com/RadioMagOnline"></a><span>Youtube</span></li> </ul> </div> <div class="col col-5"> <ul class="socials"> <li class="pt-link"><a target="_blank" href="http://www.pinterest.com/radiomagazine"></a><span>Pinterest</span></li> <li class="gp-link"><a target="_blank" href="http://www.google.com/+RadioMagOnline"></a><span>Google +</span></li> <li class="li-link"><a target="_blank" href="http://www.linkedin.com/groups?gid=3210911"></a><span>Linked In</span></li> </ul> </div> <div class="col-hide more-brands-holder"> <div class="label">Related NewBay Media Brands</div> <nav> <a target="_blank" href="http://www.radioworld.com/">Radioworld</a> <a target="_blank" href="http://www.tvtechnology.com/index">tv technology</a> <a target="_blank" href="http://www.avnetwork.com">avnetwork</a> <a target="_blank" href="http://www.c2meworld.com/">c2meworld.com</a> </nav> </div> </div> <div class="bottom-row clearfix"> <p class="credits"> Copyright © 2014 by NewBay Media, LLC. <span class="break">28 East 28th Street, 12th floor, New York, NY 10016 T <a href="tel:212-378-0400">(212) 378 0400</a> F <a href="tel:212-378-0470">(212) 378 0470</a></span> </p> <a target="_blank" href="http://www.newbaymedia.com/" class="logo newbay"><img src="/images/logo_newbay.png"></a> <a href="/" class="logo other"><img src="/images/footer-logo.png"></a> </div> </div> <!-- /PAD --> </div> <!-- /WRAPPER --> </footer> </div> <input name="ScrollTop" type="hidden" id="ScrollTop" /> <input name="__dnnVariable" type="hidden" id="__dnnVariable" autocomplete="off" /> <script type="text/javascript" src="/Resources/Shared/scripts/initWidgets.js" ></script></form> <!-- HOME SCRIPTS --> <script src="/js/scripts-home.js"></script> <!--//////////////////////////////// GLOBAL SCRIPTS ////////////////////////////////--> <script src="/js/scripts-slideshow.js"></script> <!-- Author --> <script src="/js/scripts.author.js"></script> <!-- JTWEETS --> <script src="/js/jquery.jtweetsanywhere-1.3.1.min.js"></script> <link rel="stylesheet" href="/css/jquery.jtweetsanywhere-1.3.1.css" type="text/css" media="screen"> <!-- GLOBAL --> <script src="/js/jquery.placeholder.js"></script> <script src="/js/site.js"></script> <!-- MEDIA QUERIES --> <script src="/js/css3-mediaqueries.js"></script> <!-- MODERNIZR --> <script src="/js/modernizr.js"></script> <!-- CAROUSEL --> <script src="/js/jquery.carouFredSel-6.2.0-packed.js"></script> <script src="/js/jquery.touchSwipe.min.js"></script> <!-- YETII --> <script src="/js/yetii-min.js"></script> <!-- ADDTHIS --> <script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js"></script> <!-- FITVIDS --> <script src="/js/jquery.fitvids.js"></script> </body> </html>