Tagged: vfe

vfe.sh 2.0

The latest version of vfe.sh (2.0) allows you to select whether the script will run the transcoding commands using an 'ffmpeg' or 'avconv' command. The default is ffmpeg, and it's the kind of thing one is likely set and leave, so I have added a 'converter' value in my .vferc file. On my Mac I'm using ffmpeg, and on my Ubuntu machine avconv. With avconv I found that Ogg encoding was sensitive to the audio bitrate, and that 128 was a good value. At any rate, it is now a setting that you can adjust on the command line or in your .vferc file. Lastly I added more explicit output so that you can now see in the terminal the full form of the command that the script ran for each video type.

Updated files are on:


vfe.sh 1.11

I just pushed a new version of the vfe.sh script to github:


This version (1.11) drops the use of ffmpeg2theora. All of the relevant functionality of this utility is available through ffmpeg. For my script the switch has these advantages:

  1. Fewer dependencies
  2. Greater range of input formats now possible
  3. Consistent and predictable handling of anamorphic pixel aspect ratios

Point #2 lets me work more easily with kdenlive, which I have recently begun using for video editing. Point #3 makes it easier to handle input from a wider range of cameras.


Posters (EVfE v1.0)

Version 1.0 of the "External Video for Everybody" WordPress plugin addresses two issues relating to poster images for HTML5 videos:

  1. First-time activations will now use poster images by default. This is a reversal of the previous initial setting. Existing activations will retain their current settings, but existing users who are not using posters might want to start. (See rationale below.)
  2. The plugin now includes a simple and optional built-in style sheet to help posterless videos establish a visual presence in FireFox 4.

The HTML5 <video> tag can take a poster attribute, but setting a poster previously (in iOS3) caused the video to fail on iPhones and iPads, so the default for the External Video for Everybody plugin had been not to set a poster. The iPhone/iPad problem has been corrected in iOS4 so that viewers with an up-to-date iOS should not have difficulty with posters. But there is an even more compelling reason to start using poster images: Unlike FireFox 3, FireFox 4 does not automatically display the first frame of a video. Unless you preload or set a poster, viewers may well see nothing but a blank space (with controls at the bottom) where the video should be. The video will play when you click to start it, but the white space can make for an awkward layout.

If you've been uploading poster files all along in anticipation of the day when they would work across devices, you might want to throw the switch on the Media > External VfE options page. Of course, you can still override site-wide settings in your individual shortcodes.

In case you haven't been using posters and don't plan to start, the plugin's optional built-in style sheet will somewhat alleviate the blank spaces in FireFox 4 by adding a drop shadow and a background gradient. A posterless video in FireFox 4 will then look like this:

vfe.sh 1.3

Just put up a new version of the vfe.sh script that includes an option to create a VP8/.webm version of your video alongside the OGG/.ogv and MPEG/.mp4. Success of the script depends on ffmpeg 0.6. As before, you also need ffmpeg2theora and qtfaststart.py.

Now I'll be able to work on including VP8/.webm in the External Video for Everybody WordPress plugin.

vfe.sh 1.2

This upgrade involves a little adjustment to force the ffmpeg output codec to libx264. I also changed the default frame rate to 30. You can edit the script to set the default to whatever you like, and you can override the default with the -f flag.

Upgrade for vfe.sh

I've just updated the vfe.sh shell script to harmonize better with the latest version of the External Video for Everybody plugin.

  • The poster.mp4 file will now be created only if you set a -q flag
  • You can designate an output file name that differs from the input file name by providing an optional second argument

The link to the current version of the script is in the sidebar.