Can’t Remove the Commercials!!!!

July 29, 2012

If you search for “comskip” among my older postings, you’ll see that at one time I had developed a procedure for identifying and cutting out commercials from my video recordings. I used an application called Comskip (which is a Windows app so I ran it using the Wine cross-platform emulator) for identifying commercials in a video, ffmpeg and mencoder for video data manipulation and cutting. Unfortunately, with the upgrade in my video recording software (EyeTV3) these scripts and procedures no longer work.

I’ve spent hours and long evenings trying to develop a new method, but I’ve hit a big roadblock. I can still use Comskip to identify the commercial time points in a video file, but I have no way of automatically editing the video to remove the commercial segments. In the past, I used mencoder to do the video cutting in batch mode, but now it just won’t work with the MPEG-2 file that is created by the recording software. I tried extracting the video from the original MPEG-2 file first and using that in mencoder, but no dice. I can remove the commercials  manually using the EyeTV3 software, but I want an automated procedure that just does it for me.

Unfortunately, other video processing programs such as ffmeg and Handbrake can’t cut out the commercials from a video file as effectively as how mencoder did it. So, I’m stuck now with lots of commercials that I have to manually skip by. It’s not a super big deal, but when you’re use to watching a show with no commericals, it’s hard to go back!

So if anyone reading this blog posting has any ideas or suggestions, please let me know! 🙂

Updated (12 Aug 2012): Ok, I finally figured out how to do this. I won’t go into the nitty gritty details, but the following Unix command on my iMac system is what I use to identify the commercials in a EyeTV recorded raw mpeg-2 file then create a new mp4 file with the recordings stripped out:

export DISPLAY=:0.0; /usr/bin/nice -n 5 “/Library/Application Support/ETVComskip/Wine.app/Contents/Resources/bin/wine” “/Library/Application Support/ETVComskip/comskip/comskip.exe” –ini=”/Library/Application Support/ETVComskip/comskip/comskip.ini” /Users/dave/Documents/EyeTV\ Archive/Enemy\ of\ the\ State.eyetv/0000000015cdc458.mpg &> /dev/null; /bin/sleep 10; /usr/local/bin/mencoder /Users/dave/Music/iTunes/iTunes\ Media/Android\ Videos/Enemy\ of\ the\ State.mp4 -o /Users/dave/Music/iTunes/iTunes\ Media/Android\ Videos/Enemy\ of\ the\ State\ \(No\ Commercials\).mp4 -edl /Users/dave/Documents/EyeTV\ Archive/Enemy\ of\ the\ State.eyetv/0000000015cdc458.edl -ovc copy -oac faac -faacopts mpeg=4:object=2:raw:br=164 -srate 48000 -of lavf > /dev/null 2>&1 &

I basically use Comskip to identify the commercials in the original mpeg-2 video file, then use Mencoder to strip out the commercials from the converted video (which was created using HandbrakeCLI, converting the original mpeg-2 file to mp4 format) and create a new mp4 file. The trick, was getting the latest version of Mencoder downloaded, compiled, and installed on my iMac system.

Advertisements

App developer’s dilemma

February 5, 2011

I’ve been a mobile app developer since the early Microsoft Pocket PC days (circa 2001) and I’m amazed at the selection of smartphones currently available. You have the Apple iPhone, Google Android OS, Palm WebOS, Blackberry RIM, and Microsoft Windows Phone 7 OS devices as the big players. So as a developer, which platform should you choose to develop apps for?

You really can’t developer for all of the platforms, since coding for one usually isn’t easily transportable to another. For example, the Apple iOS (iPhone, iPad, iPod Touch) use Apple’s Objective-C programming language for app development (which you need an Apple computer also). The Android OS requires the Java language, and the Palm WebOS requires Javascript (or C++ for games). Microsoft WP7 requires Microsoft’s own programming language (C# (or Visual Basic) and Silverlight), so as you can see you would need to be trained and skilled in many, many different languages for creating apps for multiple platforms.

So as a developer, you need to make some tough decisions if you want to create apps to sell for a smartphone device. In most cases your time is valuable, so you want to minimize your efforts and maximize your profits and results. I have been in such a dilemma, and here are my thoughts:

For all of the platforms, the Apple iPhone definitely has the biggest online app store. They have tens of thousands of apps available, free and paid. In my opinion, a new developer creating apps for the iPhone would easily be lost in this sea of apps, and the prospect of making a decent return on investment is quite slim. In addition, you need to own an Apple Mac to do such development and also learn the Objective-C language. Developing iOS apps has a steep learning curve and something I’m not willing to do at this moment for the possible return.

The Android OS is in a similar position as the Apple iOS, in that there’s thousands of apps already available. Most ideas for apps you might come up with have already been created. Java is a very popular language and if you already know it, then you’re more than half way there. Android developers use the Eclipse IDE (which is free) and it runs on many different computer platforms (Windows, Mac, Linux). I’ve found that the Android development tools are not the easiest to work with, but they are all free and readily available from the Internet. I’ve opted to not pursue developing Android apps since I don’t know Java and it would be a huge effort to get up to speed in that language. Now, I have not excluded writing Android apps, but at the moment I’m holding off any serious development effort with that platform.

I’ve spent the last year or so developing apps for the Palm WebOS devices, and I find it very easy to do. If you’re a web site developer and know HTML, CSS, Javascript you can create WebOS apps. Palm uses the Eclipse IDE and it’s fairly easy to code up your apps. As with the Android, you can do your development on a Windows, Mac, or Linux machine and all the development tools are free.

The biggest issue I have with WebOS app development, is with Palm. Palm has been very supportive of their developers, but it’s been over 8 months without them releasing any new smartphone devices. Since the acquisition of Palm by HP, handset releases have been non-existant. Sure, Palm release the Palm Pre 2, but that’s basically the same design as the Palm Pre. In fact, a lot of cell phone carriers have dropped selling WebOS smartphones so a developer must question if it makes sense to begin or continue developing for WebOS devices.

Microsoft released their Windows Phone 7 OS devices last year, refreshing their old Windows Mobile OS to something that is comparable to the iPhone, Android, and WebOS touch-screen devices. Amazingly, a lot of pundits like the new look of the WP7 OS (including me). Even though there’s not many WP7 smartphones on the market (GSM version only available), I believe Microsoft will throw lots of money at the WP7 project and won’t give up until they grab a big part of the smartphone market segment. As such, the total number of WP7 apps currently available is the smallest of the smartphone group, which in my opinion is a good thing for developers. This means more opportunity to create useful apps and games that will be noticed in the online catalog. Once you’ve established yourself and have good ratings, you will be in a good position to make considerable profit as more WP7 handsets are sold.

So do you develop apps for the iPhone, Android, WebOS, or Microsoft WP7 smartphones? Which platform will give you the biggest profits? If you have a “killer app” (like Angry Birds) I’d say go with the iPhone and/or Android since they have the biggest user base. If you’re a Java programmer, then go for the Android OS. If what you really know is HTML/CSS/Javascript, then dive into WebOS app development. Finally, if you know C#, Silverlight, or Visual Basic then check out the WP7 platform.

What am I planning to do? That’s a tough question to answer at the moment. I’ve pretty much decided to focus on two platforms: WebOS and WP7 since I already have apps selling on both platforms. I’m concentrating my efforts for the moment on WP7 since it seems to be an easy platform for creating nice looking apps, and their app store is low in quantity of good apps. But, I’m keeping my eye on what HP/Palm will be announcing next week on February 9th. If they announce some incredible hardware and the release of new app SDKs then I may drift back to that platform.

The smartphone industry is quite dynamic at the moment, so a developer needs to stay alert and keep all their avenues open.


Mac Programming is Driving Me Nuts!

September 26, 2010

I’ve been writing computer programs since the old Timex Sinclair 1000 came out when I was in Middle School back in the 70’s. Back then it was some form of BASIC language that was stored and loaded from cassette tape. Over the years I’ve learned several languages such as Fortran and C, as well as scripting languages such as tsh, Perl, Javascript, etc. I’ve written programs for the Pocket PC and later Windows Mobile devices, as well as UNIX X11 apps and Microsoft Windows (WIN32) apps all using straight C programming. Recently I’ve written several apps for the Palm Pre/Pixi WebOS smartphones using Javascript and various HTML5 components.

Since switching from a Microsoft Windows PC-based system to an Apple iMac, I’ve decided to explore writing applications for my Mac as well as the iPhone/iPod Touch and iPad devices. Fortunately, Apple supplies the development system (IDE) free with every OS X installation disk, so it would be no added expense to have all the compilers, etc. to create Apple applications.

I understood that programming for the Mac is done using “Objective-C”, so I purchase three programming books on the topic (as recommended on Amazon.com) to get me up to speed. So this weekend I’ve been reading parts of each of these three books and working through the various included examples. I have to say that after three days with this stuff I just want to scream!

I’ve been programming in straight C for over 20 years, and haven’t done much with C++ (which is a superset of C that implements Object Oriented Programming), so the OOP stuff is new to me. I thought I knew the basics of OOP, but after going through the Objective-C material I’m totally lost. Putting everything in classes with the @interface/@end and @implementation/@end notations, and the -/+ symbols before the method names is just nuts. Why make this so difficult? Am I just stupid? Maybe I should have bought the book, “Mac Programming for Super Dummies” because I just don’t get it.

I really like the Interface Builder tool which allows you to interactively create the application’s interface with buttons, text boxes, etc. But having to hook up those controls to the application via classes and objects is so convoluted.  It might seem easy, but to me it is very confusing and difficult to come back and maintain if put aside for several months.

At one time I did some Mac programming (with the Mac Classic OS) but this NextStep Cocoa Framework stuff is really complicated. I just wonder how are so many people creating iPhone apps for the Apple App Catalog? Am I just a big dummy and can’t get it? It sure seems that way right now.

Since I usually never give up, I’ll keep at it and see if all this nonsense will make sense to me at some point in time. I’m hoping all this convoluted Class stuff is limited to mainly the GUI, and if that’s the case I can use straight C programming for the bulk of my app and just brute-force my way with the GUI coding. I’ll also do a Google search to see if anyone else feels the same way as I, and has some saged advice on how to get through this rough patch of mine.

If you have any pearls of wisdom that you would like to share, I certainly do welcome it! 🙂

Update: After doing a search on Amazon.com I found this: Objective-C for Absolute Beginners: iPhone and Mac Programming Made Easy. So hopefully armed with this book I should make more headway into Mac programming. I’ll post an update after I receive the book in a few days and let everyone know if it is truly for “absolute beginners”!


I Love WebOS Programming!

October 4, 2009

webosFor the last 8 or so years, I’ve been writing apps for the Microsoft Pocket PC (and subsequently the Microsoft Windows Mobile OS) devices. In the early days, I was making some substantial income selling these apps on the Internet, however, my software sales have gone down every passing year to where I’m making just enough to cover my minimal operating expenses. I don’t think you can even buy a new Pocket PC PDA these days, as most people favor using their smartphones with the same integrated features. So in my opinion, the Windows Mobile OS is a dying platform for application developers.

The popularity of the Apple iPhone has created an entirely new arena for application developers. The iPhone’s best feature is its applications, and owners are definitely buying these apps in large volumes. As such, I looked into the possibility of switching my development efforts from the WM OS to the iPhone. To do so, I would have to purchase an Apple Mac computer as well as an iPhone with AT&T service for testing. I would also need to learn Apple’s Objective-C programming language and the entire process for writing an iPhone app. This would require lots and lots of time and money on my part, something I didn’t want to invest at this time.

When the Google Android phone appeared on the market (through T-Mobile), I investigated programming for that platform since it was based on Java programming. Google provided a Windows-based emulator that seemed to work quite well, so I wouldn’t need to buy a new T-Mobile phone immediately for development and testing. As I began my research and investigating, I realized that programming for the Google phone was just too difficult. Google’s documentation was too sparse, and it required developers to dig around and experiment to figure out how to use advanced feature calls. I tried for a month to learn and develop some Google Android apps, but ultimately gave up because the learning curve was way too steep. In hindsight, I think the decision to not develop for the Android phone was a good one, since I don’t see these phones selling like the Apple iPhones.

A few months ago Palm reinvented themselves by releasing the Palm Pre phone which runs the new WebOS operating system. It is very much like the iPhone and Android phones, but all of its applications are based on javascript and web-page programming. So the Palm Pre basically acts as a small web server, displaying web pages and using javascript for function calls very much like a standard web page on the Internet. Since I am a web site developer (on the side), creating applications for the Palm Pre didn’t require a lot of education (as with the iPhone and Android OS).

I’ve been working with the WebOS for the last few months and I really love it (having a good Windows-based emulator is really helpful). I can very quickly create useful and nice looking apps, and I don’t have to drop down to the low-level C progamming language to do so. I just finished writing a electronic wallet app for the WebOS and I’m now writing a companion application for my Desktop Vista PC, and I’m just dreading it. After writing for the WebOS, having to go back to Microsoft Windows C-programming just seems archaic! Lots of mind numbing coding, abstract system function calls, etc. I feel like I’m back to the dark ages again. I know I can use some higher level programming languages for Windows (like .NET) but I don’t want to invest a lot of time learning those languages.

So, I’m planning to stop all Windows Mobile OS application development in favor of the Palm WebOS platform. It’s fresh new ground, and I’m hoping to duplicate the initial success I had with the Pocket PC platform with the WebOS. I’m also looking at getting a Palm Pre Pixi phone with Sprint Service when it comes out next month, so I’ve definitely decided to invest my time and money on this platform. Good luck to Palm and their reentry into the smartphone market!


Windows Mobile OS — On Its Last Breath?

August 30, 2009

ripArguable, the Apple iPhone is one of the most successful smartphones on the market. Its slick, flashy user interface and tie to the Internet for data retrieval are its most attractive features. Its only downfall is the exclusivity on the slow and spotty AT&T Network.

Other phone developers and cell phone carriers are following suit, creating smartphones that run a similar iPhone operating system (e.g., Google’s Android OS and Palm’s WebOS). Touch screen, finger flicking, swiping, and pinching, full web browser, etc. are all typical features that users expect from these high-end smartphones.

Microsoft’s Windows Mobile OS has been around for quite a while, and compared to the iPhone, Android, and WebOS devices seems archaic. It is very apparent that the Windows Mobile OS is based on the Microsoft Windows Operating system with its popup menus and standard dialogbox screens. I’ve been using a Motorola Q phone (with Windows Mobile 5 OS) for a few years now, and it routinely hangs when I try to access an application, screens don’t display properly, and I’m forced to pull the battery out and restart quite often. Definitely not as slick or user-friendly as the more modern touch screen OSes. Read the rest of this entry »


Palm Pre WebOS Development Has Gone Public!

July 16, 2009

palm_preFor the last several months, only a select group of developers were allowed access to the Palm Pre SDK (early access program for developers). All that were accepted in the program had to sign non-disclosure agreements to keep what they were seeing in the beta SDK confidential. Fortunately, I was one of the select few who were accepted into the program about a month ago, so I have had some time working with their SDK. As of this morning, Palm has officially released the SDK to all developers publically, so anyone who wants to create Palm Pre apps can now do so.

Here’s a few comments I have regarding the Palm Pre SDK:

First, Palm was stating that a person with HTML, CSS, and Javascript experience could develop Palm Pre apps. The idea was that a person with web site developing skills could easily create Palm Pre apps. Being a person who has created web sites using HTML, CSS, and some Javascript, I thought I would fit into this category, however, that was not the case. I discovered that creating basic apps that mimic web-page operation is doable, but you do need extensive knowledge of the Javascript Document Object Model (DOM) to effectively use the Palm Pre’s widgets (buttons, lists, selectors, sliders, etc). If you don’t know DOM very well, then you’re in for an uphill battle (as with my case). So for those new Palm Pre owners who are expecting to create these wonderful games and apps using the Palm Pre SDK with just basic web site development knowledge, you’re in for a surprise. Read the rest of this entry »


Software Development – Not as Easy as you Might Think

April 25, 2009

programmingI’m trying to get back into developing applications for the Windows Mobile Devices (primarily because I need these certain applications for my own use) and make them available for sale on my software web site. I need to let you know that it’s a big undertaking. Here are the major steps required to create and sell a new application:

  1. Come up with the user interface layout, and create the application.
  2. Do some internal beta testing and fix all found bugs.
  3. Find beta testers to test your application, and email them instructions.
  4. As testers find bugs, fix them and send out updated beta versions.
  5. When it seems that the software is bug-free, make a final distribution.
  6. Get screenshots of the various screens for the application and create the user documentation.
  7. Compile the application executable, documentation, and release notes into an installer program.
  8. Create the new web page content for this new application (screenshots, description, etc.)
  9. Upload new files and web pages to server site.
  10. Modify automated scripts for sending out registration codes to people who buy the application.
  11. Send out an email blast to everyone who signed up for the newsletter mailing list.
  12. Upload the new application and details to 3rd-party vendor sites.

As you can see, it’s a lot of work to develop and make available a new application to the general public. In some cases, it could take almost 1-year to get a product developed and to market. But if you want to do it right, you have to take the time to create quality products.