Tag Archives: video

Bonus: fbff, fbpad … and fbpdf too

I do feel obligated to list some framebuffer-specific software here, and I realized a week or two ago that my last list of framebuffer applications was not only almost a year old, but also omitted a worthy pair.

I don’t have much to show for fbff and fbpad, but they are both by the author of fbpdf, and mentioning one without the other two was an oversight. To complicate things, I don’t have a machine right now that will take faithful images of framebuffer output, so here’s my best effort at fbff, and to be fair, fbpdf.

2014-09-06-jsgk71-fbff 2014-09-06-jsgk71-fbpdf

Laughable, I know. Just don’t ask about fbpad. 🙄

fbff is probably my favorite of the three, as an alternative to running mplayer against the framebuffer. At 2Ghz on an ATI Mobility Radeon 7500 with an xvid-encoded avi file, the results were quite good. If you could see what it was showing, you’d be watching the opening credits for the first episode of season 11 of Gunsmoke. 😕 (Sorry, in my culture, people are mad for anything Western.)

And if you could see fbpdf at work above, it would be a classy black-and-white page with the words, “Sample text here.” I am nothing, if not inventive. 🙄

Please don’t blame the software for the shortcomings you see there. Both fbff and fbpdf accurately rendered the media against the framebuffer, and offered basic controls for each application. In spite of what you see above, they did actually work right. I just lack a proper screenshot.

fbpad was another issue, but that one was working against the clock for me. Configuring fbpad requires some heavy-duty font setup, the use of an outside font conversion tool, then editing the source code and recompiling fbpad to show the converted font.

I can’t say this is a better way than, perhaps, configuring fbterm. If you wade through those steps, show us a screenshot and we’ll all think highly of you. 😉

Dependency-wise, fbff and fbpdf were the heaviest, with fbff pulling in the ffmpeg structure (of course) and fbpdf requiring mupdf, some poppler and some djvulibre. If you have other options for video/audio/image playback and pdf display at the framebuffer, I’d recommend weighing them against what fbff and fbpdf will need.

fbpad didn’t strike me much heavier than fbterm, truth be told — unless you count the time and tools it would take to convert and configure and compile the font. And that, knowing full well I wouldn’t get a proper image of it anyway. 😦

One last question you might ask: So why make so much fuss about a couple of framebuffer-based applications? Well, for one thing, alternatives to the industry-standard tools, like mplayer or fbida, are always welcome. Neither of those is such a perfect fit for a framebuffer-only machine that someone new can’t wedge their way into my system.

Second, and probably more importantly, access to a framebuffer can sometimes be what saves a machine from the eternal reward. There’s a big difference between a 233Mhz machine that can run text programs fullscreen at 80×25, and a 233Mhz machine that can run a full suite of terminal applications at 1024×768 using the terminus font overlaid atop a picture of Miles Davis.

One is functional, but the other is crazy, funky and cool. 😉

mps-youtube: All-in-one search, download and play

I had mps-youtube on my list as a “YouTube downloader,” which I realize now was only partly right. Saying mps-youtube is a downloader is like saying a car keeps you dry when it rains — not only is that incomplete, but it’s not really its true purpose.

2014-09-04-6m47421-mps-youtube-01 2014-09-04-6m47421-mps-youtube-02 2014-09-04-6m47421-mps-youtube-03

mps-youtube — which will probably install as mpsyt — can perform simple searches or skim through online playlists, pull down video information and comments (I can’t imagine who would torture themselves with that, though), save and edit local playlists, playback video or audio, download best-quality versions of a link, corroborate its results against MusicBrainz, and a lot more.

I daresay that mps-youtube is what yaydl and yougrabber hoped to be, and what youtube-viewer should have been. In fact, I could suggest mps-youtube if what you really want from youtube-dl is a proper user interface.

Bonus points for excellent use of color, snazzy ASCII graphics title screen, helpful prompts and onboard documentation, and a screen-conscious arrangement.

Nota benes for using python, which might slow down on some of your older hardware, and relying on mplayer (or mpv) for playback. Then again, if your machine is too weak to handle either of those for audio playback, you probably won’t be using it for mps-youtube.

Downsides, of course, would be that as far as I can tell, it’s a YouTube-only program.

But that’s probably the way it was intended originally, and I can’t fault a program for fulfilling its original intent. And doing so with style deserves a gold: ⭐ Enjoy! 😉

mediainfo: There is none higher

I know of no alternatives to mediainfo, and honestly even if I did, I would probably still use it.


And that’s the short version of what it can tell you. I don’t have space on my 1600×1200 screen to show you all of what it knows. And it’s not just ripped videos either: mediainfo knows a heckuva lot about audio files too.

And if you’re some kind of glutton for punishment, check out the number of flags and options available to you with mediainfo. Just mediainfo --Info-Parameters was too much for the scrollback buffer on my terminal emulator. It may be a contender for the Most Extensive List of Options award — which is probably currently held by mplayer.

So … what good is it? Well, for OCPDers like me, who need their home movies organized by date, time, screen dimensions and title, it’s a critical tool.

With little more than mediainfo, grep and cut, I can reshuffle an entire folder full of videos in a way that satisfies that little voice in my brain that says, “This is messy.”

Don’t believe it? It’s true. With just …

for i in *.mp4 ; do DATETIME=$(mediainfo "${i}" | grep -m1 Encoded\ date | cut -c48-) ; WIDTH=$(mediainfo "${i}" | grep Width | cut -c44-46 ) ; HEIGHT=$(mediainfo "${i}" | grep Height | cut -c44-46) ; mv "${i}" "${DATETIME} ${WIDTH}x${HEIGHT} ${i}" ; done

I can go from this …

kmandla@6m47421: ~/temp$ ls
Grub-to-login in 20-plus seconds with Arch Linux-_UOiG7sWWB8.mp4
Grub-to-X in 9 seconds with Crux Linux-aQigpYak2gw.mp4
Photo frame on Pentium running Debian-cbrSlgkmkYA.mp4

to this …

kmandla@6m47421: ~/temp$ ls
2011-03-19 10:42:13 480x360 Grub-to-login in 20-plus seconds with Arch Linux-_UOiG7sWWB8.mp4
2011-03-19 10:50:28 480x360 Grub-to-X in 9 seconds with Crux Linux-aQigpYak2gw.mp4
2014-02-11 13:43:47 480x360 Photo frame on Pentium running Debian-cbrSlgkmkYA.mp4

And life is good again. All hail mediainfo! There is none higher! 😀

P.S.: There’s a GUI too, for those times when you are feeling visually inclined. 😉

gif-to-ogv.sh: All GIFs must die

I’ve taken the giant leap forward in recent months, to the realization that All GIFs Are Evil, and it’s time to abandon that format. They’re heavy, slow, poor quality and just a drudge from a world of 20 years ago. And they tie up my meager Internet connection.

Of course, I say that knowing full well that a tenth of the images I’ve hosted here are cobbled together PNG files made into rudimentary GIFs. I’m working on changing that to something that will embed in WordPress.com’s atrocious post markup, but not require me to link to YouTube or beyond.

All of that aside, here’s one way to exterminate those cretinous GIFs: gif-to-ogv.sh. And of course, I have nothing to show for it, unless I post a before-GIF and an after-OGV. And chances are, they’d look remarkably the same to you. Which they should, if gif-to-ogv.sh was actually doing its job.

And my preliminary attempts seem to confirm it. You can adjust the quality or speed settings in the script, but for what I’ve seen it doesn’t accept any flags. Which is probably as well, since mplayer is involved, and mplayer has more choices than some ice cream shops.

avconv is also involved, and I mention that because avconv is something that appears in Debian-based distros, probably under libav-tools. If there is an Arch package that contains something called “avconv,” neither me nor yaourt nor pkgfile could find it. I’m sure it’s out there though. 😐

I don’t know what else to tell you about gif-to-ogv.sh. I seem to have a fair number of script-gimmicks in my list though, so perhaps these quick-fix tools will become a regular addition to applications. Then again, what’s the difference? 😉

peerflix: Straight to video

I don’t recall where I got the link for peerflix, but I daresay if I had a better (better meaning faster and more reliable) Internet connection, it would be a fun toy.


The other half of what peerflix does isn’t really visible there; out-of-frame, peerflix spawned a media player, and the video file that’s downloading (I am not familiar with the title; it was the example from the home page) is already playing.

It’s a clever shortcut from the “traditional” download-then-watch model that we all know.

Whether or not you adopt it depends on your connection (as in my case) or if you find yourself needing to decide-download-and-watch in the space of minutes. Your sense of urgency, in other words. 😉

peerflix supports several different media players, but seems partial to vlc. I have no problem with that, and it’s just as easy to select mplayer as any of the others.

On top of that, peerflix has a number of options you might ordinarily associate with torrent clients. Pay close attention; there are a few there that might come in handy for subtitles or other support files.

I’m going to give peerflix a thumbs-up, mostly for being an unusual tool that seems to do the job well. And it has color. Can’t forget that. 😉

cclive (and clive): So that’s what quvi was for

I knew I had quvi on my list as a component to some other program: clive and cclive are related to it.


That’s cclive specifically; clive was obsoleted sometime last year in favor of cclive, but the two projects are obviously related. Sometimes old versions like that will continue to work, but for me, clive only generated errors.

cclive, on the other hand, works without much prodding. In the above case, just cclive and a URL was more than enough to pull down a YouTube video. Good first try. And a good progress display. 😉

In addition to the options that cclive can pass to quvi, there seem to be quite a few flags specific to cclive: download speed caps, useragent masking, retries and timeouts, filename handling and special character controls, plus timestamps, resuming broken downloads and even triggering an external command after a download is finished.

All that being said, it’s still quvi that does the heavy lifting, and it’s the quvi project that determines which sites are compatible. So don’t expect cclive to suddenly make a previously inaccessible site … accessible.

It’s hard for me to pick between this and youtube-dl. I’m accustomed to the latter but I like cclive’s style and structure. I’m not going to advise one or the other — in fact, you wouldn’t be losing much ground by installing them both and trying out each, from time to time.

quvi: Build your own video downloader

I have quvi in my list of applications and I’m not sure how or why it got there, but that’s what ls vimwiki/ | shuf -n1 selected for me today.

I don’t have a lot to show for quvi, because as I understand it, quvi and its related libraries are really just the tools to build your own video downloader.


quvi does, technically, handle all the important tasks that you might otherwise assign to just one tool, like youtube-dl or one of these.

I can see the usefulness in this. If a particular site has eccentricities that aren’t handled by other video downloaders, quvi allows you to take matters into your own hands.

No good can come of that. 😯

Just kidding. 😀 I do believe that between the four tools — info, scan, dump and get — quvi has all the major tasks in hand. Which really just means it’s up to you to assemble all the pieces into a workable order.

When you do, let us take a look at it. I promise we will be fair. 😈

tpp: Pulling it all together

After mentioning textdraw the other day, I listed a few other artistic applications that might intrigue you.

But between toilet (and figlet), cadubi, and img2txt, the only thing that’s missing is something to pull it all together.


tpp is an analogue for PowerPoint at the console, translating marked-up text files into frame-by-frame presentations. All that with no more requirements than a screen to look at.

And a keyboard I suppose, since you’ll need something to control the presentation. And since tpp is written in ruby, you’ll want something that can handle that without too much stress; I’ve had machines in the past that suffered a little under ruby.

But in all truth, even the process of putting together a tpp presentation is child’s play. Take a look at the examples in the documentation, and tell me that the markup is difficult. I dare you. 😉

As you can see above, tpp works straightaway with figlet. It also has color, can manage some simple transitions (which means you can do some fundamental animation) and can even send commands to the underlying shell and redirect the output into the presentation. That’s rather impressive.

So what that means is, we have one tool capable of drawing and editing lines and shapes, two that can handle banner text output (one with color), another that can render color images into text versions, another that can draw in color in stamp-pad style, and now tpp, which can convert text into simple presentations, complete with color and basic animation.

What are you waiting for? The audience is listening. 😉

playshell: A very pleasant surprise

Every now and again I am surprised when I come across a program I like that’s not in AUR or Debian.

Of course that doesn’t mean that both of my two favorite distros should keep abreast of what I happen to like, but it seems interesting that something immanently likable should somehow never find its way into either.

playshell is my next addition to that list.


playshell has almost all the console goodness you could ask for in a media or music player, and is terrifically easy to get started.

playshell can of course handle simple playback, skipping forward or back, writing and loading playlists, sorting queues by title or file name, setting music libraries and searching through them, repeat-shuffle-loop play modes, and volume control.

But playshell also does some things that you might appreciate if you are a fellow console junkie. For one thing, there is a one-key jump straight to alsamixer, and even better, another one-key jump straight to alsaequal.

It also lets you drop into a shell or will evaluate a shell command, like mc and some other console standbys offer. If you want to change the path to your music library or edit the playlist, it drops you into your $EDITOR and refreshes when you exit. It has tab completion. And the help screens are run through less.

Probably coolest of all, playshell will use mplayer or a similar tool to show video files as well, if you run playshell in a terminal emulator, and you press the caret key.

About the only thing I don’t like about playshell is that it asks for a sudo password during setup. I got around that by making the “users” directory it asked for and by using the “compile.sh” script that comes with the package before running bash playshell.

I really like playshell; it’s clean, well documented, intuitive and flexible. And that’s probably the reason for my surprise at not finding it in AUR or Debian.

I hope there are plenty of similar surprises in the next 500 or so titles. 😯

mpgtx: Slicing and dicing, mpegs of all varieties

Having already cruised past such heavyweights as mplayer, mencoder, handbrake, avidemux, inkscape and imagemagick makes me a little more comfortable approaching mpgtx.


A tool specifically for carving away at mpeg files of all varieties is not intimidating in itself.

Knowing full well that it’s a console-only tool, with nothing graphical aside from specific control characters … that might be daunting to some.

mpgtx wisely subordinates some obvious functions to quick mnemonics, taking its biggest functions and relegating them to ancillary “programs.” So mpgtx -s is the same is mpgsplit, and so forth.

I mention that only because I enjoy little conveniences like those.

Once you get used to how mpgtx represents ranges and times, it becomes a piece of cake to get it to split or join as you like.

Knowing some of the mechanics of a video file are important too though. I had a lot of false starts with split video files until I used the -P flag, to preserve the metadata between the original and the chunk output.

Of course, it’s not quite correct, but it helps get playback started.

mpgtx claims it can handle mp3 files too, and tagmp3 — supposedly the same as mpgtx -T — has a lot of the same functions as in mp3rename and similar tools.

So what you get with mpgtx is a wide variety of tools that approach a wide variety of media files. Not a bad tool to have around. 😐

One final note: I feel somehow obligated to mention that the last posted update to mpgtx was in 2005.

Ordinarily I don’t mind if a program is out of date, even if it stretches back to the late 1980s.

Part of me wonders how well this is keeping up with newer file types and media standards, and if that would be an issue with more recently encoded files.

Take care and keep backups, would be my advice. Not to be a scaremonger, just that prudence is the better part of valor.