Resetting My Android Phone Part 4: Did It Help?

Due to some really annoying issues and change in use habits I decided to factory reset my HTC Droid Incredible with Android 2.3.4. Did it help? Let’s review my issues:

  • Searches insist on changing my search query – I cannot search for e.g. “Home Depot” because search substitutes the nearest home depot location for my search query. I am often not looking for the closest location, and sometimes autocomplete misses what I mean entirely
  • Gallery can’t find my photos I’ve taken before the last reboot, even though they are still in storage
  • Netflix app does not work, it freezes on a black screen when I start it
  • Calendar quit syncing with Exchange

I am very angry to say that the reset has not fixed the search problem. I turned off Google search suggestions in Settings -> Search -> Searchable Items, but freakin’ Maps insists on not letting me search for what I want to search for. Sooner or later I will break my phone in anger over this. Now I am live-blogging my search for a fix: Settings -> Language & Keyboard -> Touch Input -> Text input: uncheck Prediction and Word completion. I try “home depot” and “fedex” in maps and in both cases it searches for what it thinks I want instead of what I typed. >:( This phone may not survive the rest of this blog post. I go into settings and clear data from the app. No help. Time to go scream bloody murder on some Google/Android help forums.

Okay, next issue: I fire up Gallery. WTF?!?! There are images here. I suppose the fact that camera shots from before the factory reset indicate the index problem is solved, but I clearly told it to wipe all phone storage and SD card, and clearly it didn’t. It has my camera photos, my videos and some photos that were attached to SMS messages. It is not showing the icons and other non-gallery stuff it was showing before the reset. I wonder if it only wiped its own private storage areas and left the rest of the browseable storage alone? Well, I am confused, but I will call this issue fixed.

The Netflix app works after the reset. I was able to log in and start a movie.

My calendar wouldn’t sync with my last employer’s Exchange for the past couple of months even though it used to do so, but since I just left that job I can’t test to see if it works now.

So in summary the most infuriating issue is still with me, so it is apparently the way the search software is written, or perhaps there is a third place to look for how to change autocomplete/autocorrect. I find it very curious and unexpected that my files (including music, movies, documents and photos) are still on the phone and SD storage after all the warnings that all storage would be wiped out.

Posted in How To ...

Resetting My Android Phone Part 3: Restore

I backed up and then factory reset my HTC Droid Incredible Android 2.3.4 phone. It has been activated and assigned the same Google account I used before the reset. I will now restore my data and see where I goofed up. Read my backup article to see how I backed up my phone data before I performed the factory reset.

I now realize I did not even think to backup my call history. Probably not important, but with my last employer I used this phone for work a lot, and it was occasionally very useful to use call history to seen when I last spoke with someone. And now if I get a missed call that I don’t recognize, I can’t see if I have spoken with that number in the past. This might be a bigger deal if I weren’t changing employers right now.

I will not restore my old SMS messages by choice, but they are backed up in an XML file in Google docs if I need them.

Restoring bookmarks was pretty easy. I just searched for the “easy” sites (e.g. NOAA Weather, ESPN) and then read my email to click the links I emailed myself as backup, then bookmarked those (longer URL) links (e.g. Weather for my area, ESPN Dallas). Of course the “favorite” section is not populated yet, but that will restore itself over time. I didn’t care to back up or restore browser history or any passwords or cookies I had.

I took photos of my home screen layout, and I will manually set it back up as I use each app. I might look at the photos, or I might just icons and widgets where I feel like it at the time. Since my phone and app use is changing, my placement priority may change, too.

I backed up my files manually, and I don’t see a pressing need to copy any back to the phone just now. I had some music and movies on there before, but I usually use another device for playing media. I’ll probably load some entertainment on it for my next vacation, but for now I’ll only copy files when I need them. My documents were related to my old job, so no need to put those back on the phone.

Since I used the same Google account on the phone as I did before the reset, my Maps saved locations/My Places are back with no further action on my part.

I noticed some of my built-in apps are out-of-date after the reset, so before reinstalling my downloaded apps I am updating the built-in apps. Interesting: Amazon MP3 is installed; I didn’t think it was a built-in app. After updates I go to My Android Apps on Google Play (formerly Android Market) and start clicking the seemingly misinformed “installed” link and directing each app to install on my phone. I skipped a few that I no longer need or trust. They are installing to my phone with no further action on my part. Cool!

I will manually set up my Tweetdeck settings today and add my WiFi encryption keys and passphrases as I revist my WiFi spots.

Now for the real question: Did this fix my issues?

Posted in How To ...

Resetting My Android Phone Part 2

The backups are done. The moment of truth is here. Settings -> SD & phone storage -> Factory data reset -> check “Erase SD card” and click “Reset phone & internal storage”. Confirm with “Erase everything”.

After a minute or so a “Sorry!” dialog came up about a service running and asked me if I wanted to wait or force close. While I was pondering the conundrum it started to reboot itself. For a while a rather interesting icon of some green arrows in a circle above an image of a droid with light coming out of it appears, but it went away and rebooted before I could get the webcam set up to take a photo.

The next reboot looks normal but is taking longer than usual.

After only 4-5 minutes it asks me which language and then tries to activate itself. It is unable to do so, then I recall I have a network extender, so I unplug it in case activation can’t be completed through the extender. Sure enough, now that the extender is off the activation call goes through, I complete activation and the phone reboots. (I have good signal, but I bought a network extender because my last residence had poor signal.)

It asks again for my language, offers a tutorial on use and starts asking questions about settings, eventually getting to Google account and all the features that require all the companies in the world to track me everywhere I go.

Now it’s time to restore data!

Posted in How To ...

Resetting My Android Phone: Backup

My HTC Droid Incredible Android phone has been mostly great.  But after the last major update to Android v2.3.4 it has picked up some really annoying issues.

Even though I have autocomplete turned off, the phone will always substitute what it thinks I meant when searching. This really makes me angry when searching maps and the internet. If I search for “Home Depot” it for some reason substitutes the name and address of the nearest Home Depot when I hit enter, when those results are almost always different than what I wanted. It does the same thing for internet search; I cannot search for what I type in, I can only search for what it thinks I meant. The other big issue is that it does not index any photos I took since the phone last rebooted. They are all still in storage, but Gallery does not show them. I tried moving all the photos off, deleting the thumbnails and any index-looking files I found, but that has not helped. As far as Gallery knows the only camera photos that exist were taken since last reboot. It does go and find all the random images, icons and photos elsewhere in storage, though.

A couple of other issues are that the Netflix app quit working and the calendar stopped syncing with Exchange. But I didn’t use the phone for Netflix much, and changing jobs removes the need to sync the work calendar. I’m not sure if these issues coincided with the last Android update or if they happened at a different time.

I have done some internet searching and tried some things, but I have been unable to fix it. In the corporate PC world the fix for all desktop software issues is to reimage the PC, so I figured this would eventually require a factory reset of the phone which would make me lose all my apps, contacts, bookmarks, settings, SMS messages and home screen layout. I have been dreading the thought.

This weekend I am between jobs as I just finished my employment Friday and will start with my new employer Monday, so now my phone can forget all the data and sync settings for my old company’s email and saved documents. My new company will issue me a company phone, so my personal Android phone usage will now change greatly. Also, I traveled a lot in the old job but will travel very little in the new job, so the application use pattern for my Droid will change a lot.

Changing jobs and roles doesn’t require me to reset the phone; I could just delete the data and accounts associated with the old company. But give that I already have problems, why not do the factory reset now and start fresh?

In the Windows PC world, when you migrate or reimage a user’s PC you generally catch everything the user wants by backing up My Documents, Favorites and Desktop from their profile, and then ensuring their local email is backed up which for Outlook is usually under application data or local settings and for Notes is usually under C:\Notes. (Bonus points for hunting down and backing desktop wallpaper, Outlook signature/proof/stationery files, email autocomplete settings and quicklaunch bar shortcuts.) So, I organized my thoughts about what I want to back up from my Android and worked on doing so:

  • SMS Messages – Not critical, but I have occasionally found myself referring to old texts
  • Contacts – Gotta have these backed up or I wouldn’t know how to get hold of anyone!
  • Bookmarks – Not critical, but annoying to not keep them
  • Home screen layout – This sounds whiny, but you really do get used to a layout, and 20-40 icons and widgets are a pain to recreate
  • Files – I have photos, music downloads, movie downloads, eBooks and a lot of document downloads.
  • Maps saved locations – I would rather back up and keep my starred locations
  • Downloaded apps – I would like to have a list of apps I downloaded so I know to reinstall them again
  • Tweetdeck settings – I want my Tweetdeck to look the same
  • WiFi encryption keys and passphrases – I thought about this right before resetting my phone. I can reenter the phrases manually, but a couple of them are a pain on the on-screen keyboard. I don’t see an immediate and easy way to view or copy them for backup, though.
  • What I forgot – I’m adding this after restoring my phone: My phone call history would have been nice to keep if I thought about it beforehand. I don’t care about the following items, but others might: browser “favorites” sites, media playlists, browser history, downloaded-but-later-deleted apps (Google Play shows all previously downloaded apps whether they’ve been deleted or not).

So there is what I would like to back up and, in some cases, restore. Now, how am I going about doing this? There seems to be no built-in, catch-all backup for all these things. But since some are provided by the phone manufacturer, some by the service carrier, some by Google and some by third parties, I guess that makes sense. There are many backup apps, specialized and broad, free and for-pay. I’m not going to review all of them. Heck, I didn’t even look at more than two or three. I’m just going to write about what I did.

You would think SMS messages would be found somewhere on the phone storage or sandisk storage and be accessible when hooking the droid up to a PC and browsing. But I never found them. So I found and used a free app SMS Backup & Restore to back up my text messages to an XML file and then uploaded the XML file to Google Docs. I could have emailed the file, copied over USB or one of many other transfers. I don’t intend to restore my SMS messages after the reset, but the app will let you read a backup file just like it was your main SMS messages, so I will be able to read the messages without restoring. There is probably a way to view the XML messages on the PC, but I haven’t even bothered to try yet.

There are many options for contacts, so many that any given user may already have theirs unknowingly backed up. First, note that contacts are a combined list of contacts from multiple possible sources: phone contacts, Google account contacts and mail app contacts. Google account contacts sync automatically by default and therefore are already “backed up” to Google. (These contacts are viewable online in Google Mail / GMail.) Mail app contacts should be synced and therefore “backed up” with the mail server, in my case my old company’s Exchange server, but I deleted that account on my last day. The phone contacts need to be backed up, though. There is a “Backup Assistant” under settings -> Accounts and Sync that runs automatically by default, but as far as I can tell you have to pay the cell phone service provider a fee to restore that data using Backup Assistant. I used HTC Sync which is installable when I plug my phone in via USB, but that version didn’t work anymore so I downloaded the one from HTC’s site. It allowed me to sync my contacts with Outlook. The old version said it could sync to Windows 7 Contacts, but it wouldn’t sync and the new version didn’t offer to sync to Windows 7 Contacts. Oh well.

I don’t have many bookmarks in my Android browser, but there were a few I wanted to be sure to keep. I didn’t want to install an app to back them up, I couldn’t find the bookmarks while browsing through phone storage and I saw no option to export the list. So I just wrote down what I had bookmarked (ESPN Dallas, NOAA Weather, other easy-to-recreate bookmarks), but there were a couple of links to articles I wanted to refer back to. Instead of writing those down, I touched-and-held the bookmarked, chose “share” and emailed the link to myself so I can later read the email, click the link and bookmark it. It’s not as simple as export-import, but it’s simple enough for as few bookmarks as I have, and I don’t have to install an app to do it.

Home screen layout: I think what I am going to do is use a webcam and just take a photo of each screen and then recreate it manually. Since my app use will change with the job changes, it might make sense to rearrange things, anyway.

I back up all the files by hooking the phone to my PC via USB, enabling drive access and just copying everything over in Windows Explorer. All photos, music, documents and videos are locatable with browsing and searching, but phone settings, app settings and app data don’t seem to be represented in the copied files. But I have a lot of data files, so this is definitely worth doing. I won’t need all the files after the reset, so I’ll selectively restore individual files. It should be noted that I manage my music and video files myself. If you are using an application to organize them and make playlists you may want to be sure those things are backed up.

Perhaps the easiest backup for me was to realize that my Maps saved locations/starred places are already synced in my Google Maps with the Google account I use on the phone. (My Places -> Starred in Google Maps.) Assuming I use the same Google account after resetting the phone, these places will be “restored”.

Getting a list of downloaded apps was also easier than expected. Google Play (formerly Android Market) has My Android Apps which shows all the apps I’ve ever downloaded. But it currently shows them as “installed” even if I have uninstalled them on the phone. No biggie, because if I click on “installed” the next screen knows whether or not it’s actually installed and lets me install it there. So my plan is to reinstall apps using this web page.

For my Tweetdeck settings I think I’ll just list the columns I have and recreate them manually. I do not use a Tweetdeck account, just Twitter accounts, otherwise it might remember my accounts for me.

So there we go. I’ve backed up my data as best as I think I can (or am willing to do), I’ve blogged about it, so now I’ll perform the factory reset. And write another blog about that.

Posted in How To ...

What IPv6 Can’t Do…Yet

Here are some things you can’t yet do with IPv6:

  • PXE Boot: There is no Preboot eXecutable Environment boot standard for IPv6 yet, but there are some developments towards this goal. PXE v2.1 is a 1999 non-open standard, and it appears to me the momentum to move away from the PXE standard and add other abilities to network boot such as HTTP, iSCSI and other alternative file transport and the ability for one network boot standard to work with multiple architectures.
    • Intel’s response to this subject indicates they expect network IPv6 booting to be done via UEFI. I am seeing UEFI BIOS in newer business x86-64 workstations, but I do not know if they are currently capable of IPv6 remote boot. UEFI options I’ve seen are disabled by default in BIOS.
    • What used to be etherboot—an open-source network boot firmware / chain-loadable boot program—became gPXE, and in 2010 it forked into gPXE and iPXE. iPXE’s site says all new development is being done on iPXE, but there was a Google Summer of Code project to add IPv6 boot to gPXE, so I am currently confused as to which project to try first if I were prototyping IPv6 network booting.
    • In my view, dual-stack IPv6-IPv4 networking will be a reality for at least several years, so I expect IPv4 PXE boot to be the norm until IPv6 network boot standards are mature.
  • NAT: Network Address Translation was created to slow down IPv4 address exhaustion, so it is not needed for IPv6. However, many users seem to think that NAT enhances security (I largely disagree), and some have tried to develop a form of NAT during the IPv4-to-IPv6 transition phase so a group of IPv4-only hosts might communicate over a NAT device with IPv6-only hosts. But the transition NAT attempts have run into problems and aren’t considered general-purpose transition solutions. Ideally all hosts on the internet can directly address each other, so NAT should disappear when IPv4 does.
  • WINS: Windows Internet Name Service maps NetBIOS names to IPv4 addresses, but Microsoft has moved to DNS for client-server name resolution and is developing PNRP for peer name resolution. Do not expect WINS to be implemented for IPv6 name resolution or to use IPv6 to transport queries.

Original article published February 1, 2010, 10:00 AM, later edited for updates.

Posted in IPv6

IPv6 Policy Routing Linux Gotchas

I have two IPv6 tunnels with subnets, one from SixXS and one from Hurricane Electric. (Why? Eh, I’m a tinkerer.) I had them both active and responding to tunnel broker pings on my Cisco E2000 with DD-WRT v24-sp2 rev 14929 firmware, but I couldn’t route from both my subnets at the same time.

My SixXS tunnel won’t accept packets from my HE subnet, and my HE tunnel won’t accept packets from my SixXS subnet, but I can only route by destination…with normal routing.

The answer—besides living happily with one subnet and tunnel—is policy routing. With policy routing I can set up more than one routing table and choose which routing table to use based on the source of the packet, so I should be able to send SixXS-subnet-sourced packets to the SixXS tunnel and HE-subnet-sourced packets to the HE tunnel.

Unfortunately my DD-WRT version doesn’t support policy routing for IPv6. So I designated my Linux server as the DMZ host under the DMZ tab under the NAT / QoS tab and set up my tunnels and routing on the Linux box.

Instead of setting up a piece at a time and testing it as I go, I brazenly typed up my whole configuration before trying any of it out on the Linux box. That cost me a few hours of troubleshooting, but the funny part is I mostly had it right the first time. The problem was that policy rule flushing works slightly differently with IPv4 and IPv6, at least on Ubuntu Lucid 10.04.2.

The default rules are as shown:

$ /sbin/ip -6 rule show
0: from all lookup local
32766: from all lookup main

The “gotcha” is that I decided to flush the rules before adding my own. I did this because I was duplicating rules when I brought the interface down and up again.

$ /sbin/ip -6 rule flush
$ /sbin/ip -6 rule show
0: from all lookup local

Flush works a little too well as it takes away the rule that uses the main routing table! Flushing the IPv4 rules puts the default rules back, but not so with IPv6. So when flushing IPv6 rules remember to add the main rule back:

$ /sbin/ip -6 rule flush
$ /sbin/ip -6 rule add priority 32766 from all table main

Here is my working policy routing setup that routes to the proper tunnel based on the source address. I have chosen to set up the HE tunnel and subnet as normal and make policy routing decisions for the SixXS tunnel. Other things I did to make this work was to enable IPv6 routing in sysctl and add “200 sixxs” to /etc/iproute2/rt_tables so I could have a routing table named “sixxs”, but I could have used a numbered table instead. Ubuntu/Debian /etc/network/interfaces file (partial):

auto he-ipv6
iface he-ipv6 inet6 v4tunnel
        endpoint 216.218.224.42
        address 2001:470:1f0e:b56::2
        netmask 64
        ttl 64
          # Null route HE /48 to prevent sending back to internet
        post-up /sbin/ip -6 route add unreachable 2001:470:b967::/48 || true
          # Null route HE /64 to prevent sending back to internet
        post-up /sbin/ip -6 route add unreachable 2001:470:1f0f:b56::/64 || true
          # Global unicast range route (effective default)
        post-up /sbin/ip route add 2000::/3 dev he-ipv6 src 2001:470:1f0e:b56::2 || true

auto sixxs
iface sixxs inet6 v4tunnel
        endpoint 216.14.98.22
        address 2001:4978:f:178::2
        netmask 64
        ttl 64
        # doesn't work: mtu 1280
        post-up /sbin/ip link set $IFACE mtu 1280 || true
          # Null route SixXS /48 to prevent sending back to internet
        post-up /sbin/ip -6 route add unreachable 2001:4978:192::/48 || true
          # Set up SixXS routing table
        post-up /sbin/ip -6 route flush table sixxs || true
        post-up /sbin/ip -6 route add 2000::/3 dev $IFACE src 2001:4978:f:178::2 table sixxs || true
          # Set up routing table rules, he-ipv6 is default, sixxs is sixxs-sourced
        post-up /sbin/ip -6 rule flush || true
          # To local prefixes, use main routing table
        post-up /sbin/ip -6 rule add priority 100 to 2001:4978:192::/48 table main || true
        post-up /sbin/ip -6 rule add priority 200 to 2001:470:b967::/48 table main || true
        post-up /sbin/ip -6 rule add priority 300 to 2001:470:1f0f:b56::/64 table main || true
          # To nonroutable "global" prefixes, use main routing table
            # 6to4. Uncomment this if I implement local 6to4 conversion
        #post-up /sbin/ip -6 rule add priority 400 to 2002::/16 table main || true
            # Teredo. Uncomment this if I implement local Teredo conversion
        #post-up /sbin/ip -6 rule add priority 500 to 2001::/32 table main || true
            # Documentation: range reserved for dummy addy's in documentation
        post-up /sbin/ip -6 rule add priority 600 to 2001:db8::/32 table main || true
          # From SixXS subnet addr to global unicast (last rule), use sixxs routing table
        post-up /sbin/ip -6 rule add priority 32000 from 2001:4978:192::/48 to 2000::/3 table sixxs || true
          # Need the default main; flushing seems to delete the ip6 main rule
        post-up /sbin/ip -6 rule add priority 32766 from all table main || true
          # Flush routing cache to enable new routing info
        post-up /sbin/ip -6 route flush cache || true
          # Flush rules and re-add main table rule
        post-down /sbin/ip -6 rule flush || true
        post-down /sbin/ip -6 rule add priority 32766 from all table main || true

I null-route my assigned prefixes/subnets to avoid sending inappropriate traffic back into the internet which will just get routed right back to me. When I add routes for my /64 prefixes they will override the null route because they more specifically match the destination addresses. I am also routing to 2000::/3 (all currently assigned global unicast addresses) instead of a default route so I don’t send out multicasts or other address ranges I don’t intend.

If you’re wondering about “|| true”, if I don’t have that and the command generates an error code, the interface set-up would stop. The “|| true” causes the command to return a “success” code to the ifup/ifdown scripts even if the command fails so that the ifup/ifdown script can continue with the rest of the setup.

My plan is that the main routing table will handle all cases except from the SixXS subnet to  the SixXS tunnel, in my case from the subnet to external global unicast addresses. I could just make sure each table has all the routes I need, but in my case I think it’s easier this way. Here are the resulting rules from the above configuration:

$ ip -6 rule
0:      from all lookup local
100:    from all to 2001:4978:192::/48 lookup main
200:    from all to 2001:470:b967::/48 lookup main
300:    from all to 2001:470:1f0f:b56::/64 lookup main
600:    from all to 2001:db8::/32 lookup main
32000:  from 2001:4978:192::/48 to 2000::/3 lookup sixxs
32766:  from all lookup main

Rules 100, 200 and 300 are my local prefixes. They don’t need to go out the SixXS tunnel, so I divert them to the main routing table. Rule 600 is the reserved documentation prefix. I think I may try to use that address range when making how-to videos, so I want to divert that to the main routing table and null route it there to prevent sending invalid traffic out to the Internet. Rule 32000 catches all remaining packets from my SixXS subnet that are to the global unicast address range and tells Linux to use the routing table I named “sixxs”. The last rule is what sends everything else to the main routing table. The last rule should exist by default, but “ip -6 rule flush” deletes it, and that’s the “gotcha” that cost me a few hours’ troubleshooting.

The sixxs routing table as configured above:

$ ip -6 route show table sixxs
2000::/3 dev sixxs  metric 1024  mtu 1280 advmss 1220 hoplimit 4294967295

 

Posted in IPv6

View HTTP Headers With Chrome

I’ve been looking at my headers the old-fashioned way with curl -I and wget --save-headers, but I notice Chrome and IE have some pretty advanced site diagnostics built-in now. Here I am using Chrome’s F12 to check my HTTP headers which I just changed.

Downloads:
/videos/view-http-headers-with-chrome.mp4
/videos/view-http-headers-with-chrome.webm
/videos/view-http-headers-with-chrome.ogv

Whoops! I messed up those headers! I fixed them after I made the video, and then I used Chrome’s F12 to check them, and this time I got them right.

Posted in How To ...

Show Meeting 2011-12-20

Sometimes, when we’re on the ball, we’ll meet and discuss ideas for the upcoming show as well as discuss technical production concerns.

I’ve been working on a new integrated chat and video page. I tried a couple of 2-column CSS layouts, tweaked one, picked it and started dressing it up.

phpFreeChat requires that IE be in IE7 compatibility mode which messes up some of the formatting. The big problem if the browser window is too skinny, but for now I think we’re safe (enough) to assume that IE users’ windows will be at least 1000px wide. IE7 mode also messes up one of the new Twitter widgets I added to the page, but it’s also functional enough and doesn’t detract. I might be able to work around these problems by putting chat in an iframe, but I haven’t tried yet.

Oh yeah, I added a Twitter search box that follows #DBAsAtMidnight and a button that tweets to #DBAsAtMidnight, so maybe we can get some cross-discussion people chat and Twitter. There is also a “Follow @MidnightDBA” button. The MSSQL community has a large and active presence on Twitter. (Pssst…search for #SQLhelp)

Sean wants a live viewer count on the page, and that’s a fabulous idea. But at the moment I don’t have comprehensive stats logging, but it was on my list to do real soon. We’ll probably manage something with an AJAX update from a text file we’ll refresh periodically. The trick would seem to be that we’re running two streaming servers: Windows Media Services for the main feed and a VLC h.264/AAC transcoder for the Flash and iPad/iPod viewers.

I’m hoping to get one integrated chat/video page to support all browsers, but that won’t happen this week. For now I’ll have 2-4 interface pages to support the various combinations. Targets include:

  • Windows Media Player plugin (primary, best stream)
  • Flash (transcoded)
  • HTML5 video (not sure yet if this works live, should work in iPad, transcoded)
  • Silverlight (might allow all browsers on Windows to access the primary stream)

Windows Media Services and player will likely continue to be our primary target because of the features we have. I hope to soon start multi-bitrate encoding so the streaming quality can rise and fall with the client’s bandwidth availability.

Now I need to go work on something else we talked about in the show meeting, but I can’t tell you what just yet.

Posted in Weekly Live Streaming Video Production Notes

Sound: Speaker Placement

As I mentioned before, for music and sound effects we just play them through USB-connected PC speakers and let the microphone pick it up. These are Sean’s fancy speakers with infrared remote and a subwoofer. I usually adjust the volume with the remote for convenience, although I should really find a better way.

Usually both speakers are facing away from Sean and Jen and the mic, towards where I sit. Up until Friday I turned one speaker towards them and left one facing me so the infrared remote would work. I watch the VU meter on the video encoder to gague where I need the volume to be, but it often seems a bit loud to Sean and me, and it isn’t coming across as well as I’d like on the microphone.

This week I realized their monitor (doubling as a stand for camera one) was between the speaker and microphone, so I moved the speakers forward so both of them face the microphone, and the IR-receiver speaker is also tilted towards me so the remote works. I think the music sounded noticeably better on this week’s recording, and the VU meter looked like it was picking up enough volume without Sean or me complaining about the in-studio volume.

I guess that’s so simple it’s stupid, but sometimes you don’t notice the blindingly obvious until you look at what you’re doing and ask yourself if something could be done better.

Posted in Weekly Live Streaming Video Production Notes

Expression Encoder 4 SP2 Captions

When I found out Expression Encoder could put captions on live broadcasts, I got excited. Unfortunately it is not what I thought. It does not overlay text onto the video, but instead sends the caption in a separate caption stream, and the viewer won’t see it unless they have captioning turned on. And even then the display is not consistent across video players.

So I still have no solution for putting text or image overlays encoded in the video stream. That seems so simple in concept, and the LifeCam driver lets me use all sorts of silly video filters like putting hats on a person’s head, sunglasses on their face or floating stars over their head. I don’t see how they missed letting me put a static logo or some text in there instead.

Posted in Weekly Live Streaming Video Production Notes