Feb 04

Liberating Video From Flash or Silverlight via Quicktime Screen Recorder

Example Quicktime video made from a embedded flash view

I had a recent situation where some video I need to deal with was locked into Silverlight, Flash or other website embed from the source. I am not advocating you duplicate restricted material with this method. You shouldn’t. This is just a quick guide to generate an editable movie using the default software inside Mac OS X. In the following example, I am just going to snag a clip from an embedded video on my own site.

There are other ways to do this and you can use additional software options from various vendors for video and audio, but my way only uses the following:

1. MacBook Pro with Line In and headphone jack
2. 3.5mm audio cable
3. Mac OS X 10.6.x or Mac OS X 10.7.x
4. Quicktime Player version 10.x (version that ships with Snow Leopard (10.6) or Lion (10.7)

I am running Lion (OS X 10.7) in my example. Here we go.

Step 1: Confirm Audio Settings and Cable setup

You can just trick the audio recording with a simple 3.5mm cable in the headphone and line in jacks. You can get software from Rogue Amoeba or others like SoundFlower, but I have always found quality issues and “stadium” echo sound effects when doing that. A simple audio cable does the trick.

Simple audio cable looped into both ports

 

Simple audio cable looped into both ports

 

Once you have the cable plugged-in, you need to check to be sure your Sound settings are correct. These will probably be set by default, but good thing to check.

OS X Sound Preference Pane Input Setup

OS X Sound Preference Pane Output Setup

Step 2: Position and setup video

In my tests, lowing the resolution down from the very high-res setting makes sense to do. In my tests, I usually cut the resolution to 1200×1024 or even 1024×768. If I am watching the clip in non-fullscreen mode so I don’t generate a huge video file.

Thinking about the setting of the display

Then, you want to go to the video via the web browser or whatever and get it queued up and ready to play. The more you have it setup, the less you will have to trim for the final video.

Prepping location for the video you want to capture

If you have the option, you can decide to record the video in fullscreen mode. Most embedded videos will give you the fullscreen option, but in my example, I am just snagging a fixed size embedded video.

Step 3: Quicktime Player New Screen Recording Prep

If you have the audio setup and the video queued and ready to go, then you can start the Quicktime Player. Inside QT Player, select “New Screen Recording”

File > New Screen Recording

Screen recording functionality is wonderful for training videos on how to walk people through something on the computer. The audio setting is typically the internal mic by default so you can narrate or do a voice-over of what you are doing. You do though have the option to change the audio source. In our case for this, you will change it to Line In.

Use Built-In Input: Line In

I have Soundflower installed, but am not using it. You might have other audio sources available too, but because of the audio cable setup, you will use Line In. Move the Screen Recording controller out of the way of the video location on your screen and get ready to record.

Step 4: Start the recording and play the video

When ready, press the record button. You can leave the volume on this controller down to the minimum. It does not dictate the volume. The Sound prefs do. (step 1 above.) When you trigger the record, you have to select the region of the screen to record.

Starting the Screen Recording

Get as close as you can to the core of the video you want to snag. If you just click, it will record the whole screen, so you probably want to just create a region around the video only. You can do the whole screen and then trigger fullscreen playback on the video, but that may or may not be really necessary depending on what you want from this all.

Selecting the Screen Recording Region

They press the the button to start recording to start the acquisition. Immediately then play the video. You will need to trim the screen recording of you pressing play on the video but that is super simple in Quicktime.

When have recorded the piece of video you require, you can stop recording and stop the video playback. Quicktime Player will open the screen recording capture for you.

Screen recording as a Quicktime Player movie

You can trim that initial part of the recording and you have a viable quicktime movie to export to mp4 or whatever.

Yes, not the most elegent or highest video quality in the world, but it does generate a workable video file with decent audio that came around via the loop cable. Hope this helps if you get caught in a situation that requires something like this.

Sep 29

Host Only Networking Setup With VMWare Fusion 4

 

I have used VMWare Workstation and Fusion for many years now on Linux, Windows and Mac OS X host operating systems. I have used the “host only” networking on Windows and Linux host operating systems, but never on OS X with VMWare Fusion until recently when I had the need to test some new firewall software setups.

On VMWare Workstation or Server, it is pretty easy to set network addresses for the virtual networks and hosts, but turns-out it is kind of a pain with VMWare Fusion (the Mac app.) For whatever reason, they didn’t include the configs in VM configuration GUI. This makes the whole setup more of a pain than it should be. I suppose they didn’t add this level of configuration because of the way the VMWare Tools may or may not integrate with the guest OS or something in OS X. Also, maybe Mac users just don’t really request the need to have this in a nice GUI due to lack of overall interest. Whatever the case, there are some great reasons to have it operational.

In testing the recently released IPCop 2, I needed to play around with settings and see how the configurations I use in production would and could work on the new build. VirtualBox, VMware and Parallels are great applications for these sorts of development testing situations. I have always had a preference for VMWare because of their commitment to have the vm images be able to move back and forth between host operating system applications versions of VMWare. It has come in handy many times when I have moved from Windows to Linux or back as I have changed my main operating system.

By default, a VMware Fusion guest OS will initial be setup with an initial network interface. You can set in the VMWare settings whether you want it to act as a NAT or Bridged. That is all standard, in the VMWare Fusion application host config settings. In my case, I need the VMWare guest to have at least two network adapters so I can test different network nodes as I try to mimic servers with multiple physical network cards running the Linux-based firewall. So, in my case, I added an additional network adapter in the guest settings interface.

VMWare Fusion 4 Guest OS Settings

At each of the network adapters, you can set the use setting. In my situation, I  wanted the first network adapter to be used to provide access to the real network my MacBook Pro is using to access the real network (wired or ethernet) on the machine.

It will want to make the first network adapter use NAT by default so nothing crazy here except, I did flip the “Advanced options” and generated a MAC address and kept generating addresses until I got an “A” in the final segment so when I am testing and looking and packets coming and going from device addresses, I can know that the host with the “A” is this first network adapter. You don’t need to do this, but if you can insert some sort of label to help troubleshoot or tag traffic/addresses/information in this sort of setup is useful to me. My VM is titled “ipcop2″ but it could have been titled “Linux” or something else.

VMWare Fusion 4 Network Adapter 1 Settings

The second network adapter is when I dip into virtual / host only world. I create it and designate it as a private network only available to the host mac I am running VMware Fusion 4 on, then keep generating a MAC address until I get one that has a “B” in the final segment to continue the configuration pattern of tagging the network interfaces.

VMWare Fusion 4 Network Adapter 2 Settings

I also had to go into the guest OS and assign the virtual network interface to the correct address that matched the one I will put in the VMware config for the host only. Because it was IPCop 2, it looks like this. But, your setup will differ if you are running something else and want a fixed ip across the configs.

Assigning Virtual Host Only MAC To IPCop Green

Assigning the NAT MAC To IPCop RED

Assigning the fixed IP to the virtual network host only adapter in the guest OS (IPCop)

Then I went in a edited the networking file where VMWare maps the IP addresses to the virtual network interfaces. In VMWare Fusion 4, they moved it to /Library/Preferences/VMWare Fusion from the previous location under Application support. I gave my private network adapter a fixed IP in the reserved space since I will also be assigning the address to one of the settings in the guest host as a fixed address. You can hit this via an OS X terminal.

$ sudo vi /Library/Preferences/VMware\ Fusion/networking

and modify to assign the interface a IP. My example is changing it from the default setting or DHCP and setting it as 10.111.1.1

editing /Library/Preferences/VMWare Fusion/networking

Anytime you modify this config, you need to restart the the VMWare Fusion application to get it to use the new settings. I would also restart and confirm the settings in the guest host on network addresses on any testing or modifications. After all settings and restarts of guest OS (if they were in a suspended state) and the VMWare Fusion app, make sure the ping the address. You can also arp -a the network from the OS X terminal to see if you get a bite. You should see the MAC address you generated and the IP you set in the networking config.

arp -a in OS X terminal confirms vm network address

This process will at least get you a basic host only networking between the host and guest OS in a contained way. It is my hope that VMWare makes this easier in later updates of VMWare Fusion 4 and regardless of what host OS you are running (Windows, Linux, Ubuntu, etc.) At the time of this post, we were at VMWare Fusion 4.0.2.

Feb 12

Desktop Paging Finally Back On Mac OS X

After the demise of Codetek’s Virtual Desktop a few years ago, many Mac users who love desktop paging and virtual desktops were left with no real options. CodeTek’s software was actually very nice, but they just stopped updating it perhaps due to major OS changes from Apple or the developers disbanded. The website is still up for some crazy reason http://codetek.com/ctvd/ and they continue to sell a product that doesn’t work on OS X versions beyond 10.4. I hope people are not being taken, but who knows.

Apple came out with Spaces in meant to provide some level of functionality along the lines of traditional virtual desktops, but Spaces on it’s own is pretty worthless and more of a hassle then a benefit for many of us who typically have a dozen or so applications running simultaneously and constantly bouncing back and forth. Exposé is another tool that Apple includes as part of the OS starting in OS X 10.5 onward, but again, not very helpful and most just get confused by it.

Enter the newly released Hyperspaces from The Cocoabots. I was dubious that it could provide something close to the wonderful utility built-into all Linux GUIs from CentOS and RedHat to Ubuntu in Gnome or KDE. Good news is that it comes pretty close yet still feels very Mac-like. It works in conjunction with Apple’s Spaces to get me back in business with multiple virtual screens to leave applications open and maximized in their ready positions. The setup with Spaces and Hyperspaces is also aware and capably of handling apps based in X11 and in Windows VMWare apps like Internet Explorer.

Here are some screenshots of my setup -

My only issue would be that I do miss the option to have a floating palette switcher option or to be able to put the switcher in the menu bar full-time. But, this tool is a major, major help for me and I am sure in future versions, more options will be available and the product will continue to improve. It is well worth the $10 though in the OS X App store. If you just want to try it, you can via the website download, but you can only work with three desktops which will not be enough when you really get used to working effectively with desktop paging.

Jan 13

TI-SmartView TI-84 Emulator and OS X 10.6.x Snow Leopard Fix

Many math teachers out there at use the Texas Instruments TI-SmartView TI-84 emulator software for their classroom presentations. The software does depend on Java. Recent updates and changes to Java versions from Apple on OS X 10.6 “Snow Leopard” seem to cause some problems for the application if you don’t have the latest version. Apple moved to Java 6 with Snow Leopard and that probably broke some things for the SmartView. Latest at the time of this post is v3.2.

The problem came to me when a Math teacher running v3.1 had launch issues. Saw some posts in the Apple Support Forums, but that didn’t provide a fix. Texas Instruments support was clear that 10.6.6 had JUST come out (which it has) and that v3.2 was tested in 10.6.4 and was probably going to work, but no ironclad guarantees.

Few things to note: You need to get v3.2 of the software.

The About This Software Splash Screen

3.1 will not cut it no matter what I tried. The way you do that is to download the version here

http://education.ti.com/html/smartview/smartview.html

Before you install the new version do the following:

1. Delete the old app in /Applications

2. Delete the directory in the users folder library relating to the 3.1 preferences: ~/Library/Preferences/Texas Instruments

Failure to do the pref directory delete kept the application launch crash going. Tech Support tells you just to remove the old 3.1 application, but I would remove the prefs as well just to be sure.

After you install and run v3.2 you can go on the 90 day trial license to get you up and going immediately. TI changed their licensing system and structure, so you will need to call them directly to upgrade your license code to the new 3.2 format.

Jan 12

Preparing Video for The WhippleHill Brightcove-Based Media Gallery

Starting January 10th, WhippleHill moved the multimedia back-end of their Podium platform to Brightcove for a number of reasons I won’t cover here but all positive in the grand scheme of things. But, this did leave me with the opportunity to look at and change from what I was doing with our video pre-processing in their old flash-based system since the Brightcove back-end provides much more flexibility on device support with HTML5 MP4 players in addition to flash capability.

So, starting early January 10th, I began testing. The main process I have been performing around video relate to our Community Meetings, Assemblies and Performances we have and want to make available for the larger community. The Brightcove Recommendations and Specifications page was helpful, but not all that specific. This became more of a trial and error to see what would be acceptable for us and the type of video we were going to be posting now in the new and improved environment.

If you are unsure what sizing and settings will work for you, I suggest you do what I did. Take a 1 min clip of video that is representative of the type of video you will be posting and export that to H.264 MP4 format a few different ways and upload them into your Whipple Hill Media Gallery to see how they show on your Desktop computers and mobile devices. Encoding/exporting 1 minute of video into the different formats will give you a better sense of exactly what happens when you change a setting here or there. It will also provide clarity on file size. Based on how you export your MP4 file, that 1 minute video filesize can range from under 20 megs into 30megs and up. This is extremely useful to understand and be aware of when you process your video. It also allows you to be able to know a 30 minute video with your preferred settings will be x megs when you go to upload it. Brightcove typically has a 2 GB file upload limit and currently WhippleHill has a 1 GB upload limit. So, knowing that and the roughly the size of video encoded with your settings will give you a guideline early in the process on how you should proceed.

Another aspect to consider is what devices people will be accessing the video from. There will be more and more people viewing our video from iOS-based and Android-based devices in the coming months and years, but today most people are still going to want to view it via laptop or desktop. This is important because it helps guide you on your priorities on sizing of the video. If you go lower in resolution, Brightcove does size it up or down very nicely for devices that want to natively go larger, but in my opinion it is probably better to get the video into Brightcove at a reasonable high resolution so even the full-screen player on a widescreen laptop or desktop monitor will look good.

One item to note: Apple does have an .m4v file format they use as a container for video files, but this is NOT the same as MP4. More information on this format can be found here. Just saving a movie out of Apple media applications to the .m4v format will not get you there.

I do most of the initial processing and editing in iMovie then export using QuickTime. You can export from iMovie under the ‘Share’ menu

In iMovie, Export Using QuickTime To Go to MP4

Change the Export Pop-up to Movie To MPEG-4

Selecting Movie to MP4

Then into the ‘Options’ button.

After a lot of testing my MP4 settings for file uploads are ideally this -

Quicktime Export to MP4 Settings

QuickTime Export to MP4 Settings

Video Format: You want to keep the format H.264.

Data Rate: The most important variable that dictates the size and quality of the resulting file. 3500kbs might be a little overkill, but in testing north and south of that, it seemed that was the cutoff of quality that I was happy with.This setting and the Image Size really are the reasons for quality and file size to fluctuate.

Image Size: Using 1280×720 because the video I have from the HD camera is going to be 16:9 and I wanted larger resolution for the desktop full-screen player. This is way overkill for iPhones and iPads, but still looks nice for desktop full-screen viewing. Brightcove gears down for devices that cannot handle large resolutions really nicely.This is something along with Data Rate you can use to decrease the size (and probably the quality of the resulting MP4)

Frame Rate: Typically from most cameras, your video will be recorded at 30FPS (frames per second) but this is often many more frames and data than needed. I geared down on the frames per second because it does save some file space and it is really not noticeable for viewers to have be at 30 fps. Also, in my testing, I found going to 15fps really increased the turnaround on encoding at the Brightcove end for some reason. Video pre-processed at 15FPs came back live into the Whipple Hill Media Gallery from Brightcove faster perhaps because there was half the number of frames to mess with on their end.

With these settings exporting out of something like iMovie, Final Cut Pro or QuickTime 7 Pro, you get about a 27.6 meg MP4 file for a minute of video. This means in my screenshot example of around 30 minutes of video I get an exported file of around an 800 meg file to upload which keeps me under the WhippleHill limit of 1GB. Most of our videos are going to be around 30 minutes or so long or we can break them up into parts that are 30 minutes or less, so this works for us.

If your video durations differ – perhaps you routinely want to post an hour of video. You might want to gear that resolution down to 640×360 and lower the Data Rate to to 2500 or so. In my testing with Podium and Brightcove, I was not happy with anything less than 2500kbs no matter want the resolution was. 640×360 is a nice step down in sizing, but the Data Rate is the biggest driver of that MP4 file size. If you are processing a really long video like an hour or more, you might be better served going with a higher data rate like 3500kbs and just breaking up the video into parts that make sense for the viewer.

Just as I didn’t like anything less than the 2500 on the Data Rate side of things even in 640×360, I didn’t seem to see any real difference going higher than 3500kbs no matter what the resolution was. I tested 4000kbs and higher, but the huge increases in file size did not provide any better quality in my opinion and after looking and many, many, many 1 minute videos.

Hope this helps and your mileage may vary but this testing process can be very helpful in understanding the dark art of video processing and getting a handle on the positives and negatives of the switches and settings you can tweak to get the results you want.