10/11/2010

10-11-10 - FFmpeg success

I've never gotten ffmpeg to work because I could never find a win32 build with everything integrated in it properly (for the win32 build to work easily you need to statically build in mingw, libavcodec, etc.). Anyway, I finally found one :

Automated FFmpeg Builds at arrozcru

And in particular it's got a mess of x264 presets included so you don't have to try to figure out that command line. In particular I can now do :


echo USAGE : [in] [speed] [out]
echo speed = medium,slow,fast,slower,etc.
%FFMPEG%\bin\ffmpeg -i %1 -threads 0 -acodec copy -vcodec libx264 -fpre %FFMPEG%\presets\libx264-%2.ffpreset %3

(my latest fucking video Babel problem is that god damn Youtube doesn't offer mp4 options for many videos anymore, they are all FLV, and my HTPC can't play FLV, so I have to convert youtubes friggle fracking frizzum). (BTW you can also change containers sometimes by using -sameq and not specifying anything else)

Some more reference :

ffmpeg.org FFmpeg FAQ
ffmpeg.org FFmpeg Documentation
VideoAudio Encoding Cheat Sheet for FFmpeg
Links - FFmpeg on Windows
FFmpeg x264 encoding guide robert.swain

BTW any time you are trying a format change pathway it's a good idea to check sync with something like this video

ADDENDUM : Well, as I predicted the Unicode Fuckitude on Windows command lines is coming true. FFmpeg won't open some videos with weird characters in file names, and Youtube in fact has a bunch of videos with weird chars in their names. The simplest solution is to run my Deunicode on your download directory periodically. Deunicode actually still allows 8-bit characters, I might make a -ascii option to restrict it even further to just 7 bit ascii. (8 bit characters work consistently on Windows but still have the annoying attribute that they may display differently on the CLI vs in Explorer).

BTW the problem is not really FFMpeg , it's the fucked up Windows Console CP thing. ( see previous ). The only way to make command line apps that work with unicode file names in Windows is to do the elaborate "GetUnicodeFileNameFromMatch" thing in cblib that I do. So far as I know I'm the only person in the whole world who actually does this (I guess not that many people actually use the command line in windows any more).

3 comments:

Anonymous said...

I have an even shorter ffmpeg cheat sheet I made for myself when I couldn't find anything concise (I missed that rodrigopolo listing).

I should maybe make for ripping DVDs to x264 using mencoder, which is a way that lets you run only one command and there are no dependencies so it's easy to download. (Technically, it takes two commands; you first do a command to get a listing, and the second command that rips and encodes you specify the title from the listing.)

Anonymous said...

Wow, what happened to my writing ability? Trying it again:

I should maybe make a cheat sheet for ripping DVDs to x264 using mencoder, because this method only requires you run a single command, and mencoder has no dependencies so it's easy to download (as opposed to lots of ripping tutorials I found which want you to download three of five different interdependent programs).

Technically, it takes two commands; you first do a command to get a listing, and the second command rips and encodes you specify the title from the listing.

cbloom said...

Yeah, the thing I was using before I finally got ffmpeg to work was mencoder.

For example the way I extract frames from a video is :

mplayer -benchmark -nosound -vo png:z=6 %1

To do x264 multi-pass I still extract the y4m and then do passes on that.

The problem with that is then I need to interleave the audio back in and that's not reliable.

(for video codec compression testing of course I don't include audio, but it's still somewhat problematic because people get the frame timing a little off sometimes)

old rants