Jay Tuley

Posts tagged with niceplayer

WOVSuite 0.51 by Jay

What Is WOV1?

WOV pronounced “wahhv”, stands for Wrapper Of Video, its a Mac OS X package format that contains both a non quicktime video source and a pre-parsed QuickTime reference movie and is QuickLook compatible.

What’s WOV Got to Do With It2?

If you have ever had a large Window Media File you want to open with WMVPlayer plugin for QuickTime, you may have noticed it’s really really slow. Same goes with Perian and MKV’s, though not nearly as bad. Since they are converting to a QuickTime movie format in memory its possible to save that file and have much quicker load times with subsequent opens. However you must be careful, because these plugins can (and have in the past) changed they way they work such that imported quicktime movies can be broken with updates, so it’s imperative that you don’t save self contained movies only reference movies external to the original file. So thats what WOV does, it keeps a reference movie which is really small and the original file combined into its package format, that makes it easy to organize these pairs, repair the reference movie if necessary in the future, and completely undo the WOV container and restore it to the original files (if you so desire).

WOV WOV WOV3.

So early on playing around with the idea of WOV, I soon realized it was a good format for simple non destructive QuickTime edits, so I chose one I though was particularly useful which is joining files. So there exists an option, when converting a batch of files in WOV Converter, to combine multiple files into a single WOV file. That resulting package contains a chapter-ized reference movie, the original files, and an M3U playlist of the original files. Thus when trying to open the WOV file in a non native QuickTime App it will try and open the M3U file, I choose M3U since it is so simple it’s likely to be supported in most apps (it is supported in VLC specifically).

Tainted WOV4.

There are decent possibilities for caveats with this format, which is why I am putting it out in this early beta and not integrating into NicePlayer right away. One of the obvious caveats is that the original type is masked, which makes it hard to tell if a non native quicktime app is going to be able to open a WOV file ahead of time. I’m not sure if that will be a big deal, but I need people to use WOVConverter & WOVOpener to get feedback to figure out stuff like that.

It should be noted that there is also major issues with using WMVPlayer with WOVConverter. WMVPlayer version 2.2 must have the preference “Open Local Files Immediately” unchecked, or alternatively you must downgrade to version 2.1 to work properly with WOVConverter.

The Book of WOV5.

WOVSuite — entirely open source, licensed: MPL/LGPL/GPL

has a few parts:

  • WOV Opener — Utility that opens WOV files. You set the actually program you want to open the video and whether that program supports quicktime files natively. Supported on 10.4 & 10.5
  • WOV Coverter — Utility that converts any quicktime importable file into WOV files, repairs broken WOV files, and unwraps original files from WOV files too. Supported on 10.5 Only
  • WrapperOfVideo.framework — Framework to make it easy for other cocoa applications to support WOV packages without WOV opener. Supported on 10.4 & 10.5

Fun Footnotes

1 What Is Love

2 What’s Love Go to Do With It

3 All You Need Is Love

4 Tainted Love

5 The Book of Love

NicePlayer Preview Builds by Jay

While NicePlayer is pre-1.0, I strive to make each release solid enough for general mass consumption. However it’s not easy, it involves testing on different processors, os’s, migrating localizations, updating readme’s and documentation—it’s a long laundry list of things. And we need more help on testing. NicePlayer is open source and the source can be checked out and built prior to release for anyone to try out features and bug fixes, but I don’t think that is accessible enough to get the feedback necessary to for quality releases. So I created a Preview builds page where I can easily upload preview builds of NicePlayer.

http://jay.tuley.name/build/

These releases aren’t ready for mass consumption, but are solid enough for enthusiasts to try out. Anyone is welcome to try them, but please only link to the build page and not the actual download. Also be forewarned that the download links changes every 5 minutes so if you try to link to the actual download it will stop working quick (so no unauthorized MacUpdate posts!). On the build page I add what’s changed and what I need tested to the description of each build. The description will also show up in the preview appcast that NicePlayer autoupdates from, so you can keep up to date on this bleeding edge track.

NicePlayer 0.96.X the Early Leopard by Jay

The First Release

So the first released was 0.96.0 in the wee hours of the A.M. of October 26th a last ditch effort to release something that actually worked on Leopard combined with a few bug fixes from 0.95 and some minor features I had started working on prior.

Version 0.96 (v543)
• Basic Leopard compatibility
• Progressive movie loading progress in scrubbing area
• Chapters expand in playlist drawer.
• New Playlist and Volume menus
• Fixed subtitle bugs involving parsing commas in SSA, and foreign encodings.
• Using Sparkle for future updates
• Fixed Transparency behavior in regards to correctly representing opacity and transparency

Something, I just found out is that, my pre-sparkle method of updating actually broke on Leopard so users didn’t get this update notification, however since 0.95 doesn’t work at all on Leopard, I’m sure such users have found the update since then who needed it, so it’s a good thing I’ve switched to sparkle on this release.

The Second Release

I got to fully test the sparkle update method by releasing, two weeks later, 0.96.1, which contained a few bugs that were introduced in 0.96.0’s haste (whoops), but also I got to try out some fun Leopard stuff.

Version 0.96.1 (v573)
• Fixed playlist delete bug – introduced 0.96.0
• Fixed playlist drag and drop bug – introduced 0.96.0
• Added Leopard Sized Icons
• Added Sparkle Preference Pane
• Fixed preference bug that ignored preference changes – introduced 0.96.0
• Code signed
• Resolution Independent GUI (Glitchy in Tiger, works pretty good in Leopard)
• New and Updated AppleScripts for the Script Menu

I added code signing as a build stage, however I haven’t figured out if being signed actually does anything. I thought it was supposed to reduce warning messages when downloading updates, however I tested downloading two copies of the same code signed NicePlayer and they both had the same warning dialog. Oh well. Sparkle updates don’t seem to cause warning messages, but i think that is not dependent on the code signing.

I also added new 512px icons, they are fun, the main app icon looks like glass in coverflow.

It’s great.

I updated quite a few of the default AppleScripts for the script menu. Since Leopard made setting the default dvd player scriptable, I’ve updated my script that previous did the same with laborious UI scripting (but still falls back for tiger). Also I’ve fixed the fullscreen behavior of the aspect ratio scripts so that by default they rescale to fit the screen after change the ratio. Finally, the most interesting to me of the default scripts changes, is that I added a pair of scripts to set the UI resolution for just NicePlayer. This means that if you want to set the scale of NicePlayers interface to 300%25 you can, with out using Quartz Debug and without effecting any other applications. The ideal usage of this feature in my mind is if you have a large screen and a wireless mouse and you want to control it from across the room. But I’m sure it helps with 30 inch screens upclose as well, I’m sure there are other uses, it’s always interesting to find out the creative things people use NicePlayer for.

Here is a picture at 300%25, although it’s on my macbook so screen the size isn’t large enough to contain the menus but you get the idea.

I’m very excited to get resolution independence working on NicePlayer, it’s something I tried to do on Tiger but I wasn’t having success, but with the new Leopard docs I finally figured it out. Although the changes I made work for resolution independence on Tiger, there are some weird glitchy bugs in windowing behavior such that I don’t recommend using it on Tiger.

The Third Release?

So there appear to be two significant bugs in 0.96 that have been reported. The first is that NicePlayer and Leopard Spaces aren’t friends, I have some ideas of where to look to figure out what is going on, so I’m hopeful, and if i do figure out I’ll just release another small update 0.96.3 rather than waiting for 0.97. The other bug I’d like to fix, but It’s only been reported twice and I can’t reproduce it, is that on Tiger some people have reported that the Volume icon shows up over the video and stays there on open and doesn’t disapear, since I can’t reproduced it, even though I have a Tiger install, it makes it kind of difficult. So if anyone has any clues to reproducing it, send preferences files or whatever, I’d appreciate it.

NicePlayer 0.95 the Shiny Penguin by Jay

Although NicePlayer is still Mac OS X only and will probably stay that way, it’s now open source and what better animal than a penguin represent open source (even though it suggests linux)...plus NicePlayer’s icon and widgets are shinier (they literally have a sheen now) so that’s why this release is the Shiny Penguin1.

1 Previous releases were the Dark Horse and the Bad Wolf.

Open Source

NicePlayer is tri-licensed under the MPL, LGPL, GPL. They are all copyleft licenses, MPL (Mozilla Public Licenses) is the least restrictive it terms of reuse. MPL is not what “GPL-haters” like to call viral as it only pertains to the licensed code that you are modifying and not the rest of your projects code that is incorporating it.

Shiny Controls

I gave the controls sheen, they extend across the movie bounds continuously when the video is black it’s more obvious that they are controls and not strange floating symbols.

Subtitles

I’ve also added basic external subtitle support, it was something I wrote simple parsers for a year ago, but never added a renderer, I kept on putting it off, so finally decided to put it in this release get some feedback.

It’s already been reported that I don’t allow the encodings to be set for subtitles. When this was reported I figured it’d automatically work with UTF-8, but it actually automatically treats it as a c string unless a Byte Order Mark is at the front of the file. This typically doesn’t get added for UTF-8 because it can mess things up for some kinds of files (though it does not in this case).

So the next version I will change it to the 10.4 api’s, which have been improved for dealing with encodings. We probably will stick to making UTF-8 and UTF-16 the only guaranteed way of your encodings working (with out BOM being necessary for UTF-8), because even if most subtitles out there aren’t Unicode they should be, and it’s not hard to convert (we may include a simple converter next release too), and that is preferable to adding a huge list of encodings in the preferences.

Perian

Perian has helped shape some of the features for this release. I’ve been compiling from source seeing what is in store for version 1.0, such as matroska support. My test file had chapters,subtitles, and alternate audio all show up in QuickTime Player. So I added menus so they can be used with the CoreVideo engine in NicePlayer too. Also the current version of Perian has FLV support, so we added an association for that file type so you can opened by double click.

Virtual DVDs

Another program that inspired a feature was Virtual DVDs. Virtual DVDs allows you to wrap a VIDEO_TS folder in a bundle with the extension .vdvd which makes it double clickable from the finder to open in DVD Player. So I adopted their convention so you that can double click one of those same .vdvd bundles to open in NicePlayer as well.

Scary Transparency

Finally last feature I’d like to note is that we’ve made it possible to make movie windows transparent. I’m not sure there’s a good reason for it (beyond a couple people asking for it), but then again it only can be invoked via applescript (so it doesn’t clutter up the GUI). We have a default script under the heading “Just For Fun”.

Rundown

Here’s the official change list for 0.95:

  • 100%25 Open Source (MPL/LGPL/GPL)
  • Added support for Chapters, and enabling extra Audio and Video tracks for the Core * Video engine
  • Added basic support for external subtitle files
    • .ssa substation alpha,
    • .srt SubRip,
    • .sub MicroDVD
    • Added file type extension recognition for
    • .divx,
    • .vdvd (package around VIDEO_TS ala “VIrtual DVDs”),
    • .mkv (Matroska added in anticipation for future Perian support),
    • .ogg( for Theora/Ogg support provided by the xiph components),
    • .flv (for current perian support)
  • New fresh look
  • Added AppleScript-able Transparency, with a default script for applying it
  • Added preference for volume memory on creation of new windows
  • Added AppleScript vocabulary for determining full screen
  • Fixed bug that caused niceplayer to hang on quit after watching a DVD on a Core2Duo Macbook
  • Fixed bug involving not being able to unmute
  • Fixed bug involving changing window level in fullscreen
  • Fixed bug in auto dvd launching script
  • Fixed bug that sometimes would cause movies to show up black when opened off a removable disk
  • Fixed various crashes

NicePlayer 0.93 the Bad Wolf by Jay

So I think, at the suggestion of Robert, I’m going to get in the habit of naming each release of NicePlayer with the Adjective Noun. 0.92 was the Dark Horse which end up pretty accurate, I said so at the time based on versiontracker downloads compared to that of other alternative movie players for mac. Excluding MPlayer and VLC which get a huge amount of downloads, NicePlayer is probably only second to DjoPlayer (MPlayer based) in Download rates on versiontracker.

However there has been recent evidence of NicePlayer being a Dark Horse, while NicePlayer is still quite unknown, there was a review on MacMod’s Video Player Roundup comparing QuickTime Player, Windows Media Player, VLC, MPlayer, and NicePlayer, and the conclusion found VLC the best with NicePlayer as runner up.

Niceplayer is one of the best. For watching movies, the onscreen controls are near perfect. With a little work on file compatibility, Niceplayer would quickly reign supreme over the other Mac video players.

If only file compatibility require just a little work. NicePlayer is mostly and most importantly a user interface, and for file compatibility, we have very basic plugin interface that really lets you plug in any cocoa view as a replacement and you just have and have it respond to a few commands. So I’m hoping for third party action on the file compatibility front. You can find out more on the NicePlayer Plugins page such as how to make one, and what plugins already exist.

Why so Bad?

So why call 0.93 the Bad Wolf you say? Chose it at random that’s all…it just sounded good…does it matter? But you’ve heard that before? You’ve heard it lots of times? Everywhere you go? Two words following you? Nah, just a coincidence, like hearing a word on the radio and then hearing it all day.

Obscure Cult Sci-fi references aside, there are a few Bad Wolfish things NicePlayer does, such as has a somewhat controversially script menu. Apple provides a global script menu but it’s not a great experience for application specific commands, and especially not useful if you want to provide some default scripts to novice users. Some people say you should only use the Apple provided menu, but there also prominent apple apps with their own menu too. NicePlayer has taken a side and it’s CocoaScriptMenu (since I wrote it for this app). The other thing I added in this release somewhat Baddish was an easter egg, something of no value what so ever, but is now a hidden feature. What is you ask? Well since a signature feature of NicePlayer is the ability to have floating movie windows, the new hidden feature is the ability to have movie windows lay below the desktop icons, see I said useless, but fun :D and hidden. And finally Robert’s been battling the Tiger DVD Framework, for some reason the framework has been degrading functionality wise as of late, so the DVD plugin is a bit of a workaround this version.

Other than that I wouldn’t say 0.93 is Baddish, unless of course this is a case when bad means good. This version should be much more stable, it should work better on 10.3.9 than the last one, it smartly handles non-square pixels with DV footage, and can send us crash reports if you install Smart Crash Reports.

The Full Run Down

What’s new in Version 0.93 (v394)


  • Can switch playback engines on the fly

  • Detects correct aspect ratio of DV footage (Tiger only)

  • Can open content nested content by opening it’s folder

  • Integrated AppleScript Menu

  • Manually change aspect ratios via the script menu

  • General stability enhancements

  • Increased applescript vocabulary

  • Support for Smart Crash Reports if you have it installed (http://www.unsanity.com/smartcrashreports)

  • Fixed bug that caused windows to disappear

  • Fixed bug that caused NicePlayer to crash when launched on a case-sensitive file system.

  • Fixed multiple bugs with dvd playback on tiger

  • Fixed bug with playlists occasionally opening improperly