[FFmpeg-user] ffmpeg issue

Robert Johnston anaerin at gmail.com
Mon Dec 12 06:28:07 CET 2011


On 11/12/2011 10:12 PM, Phil Rhodes wrote:
> Several reactions:
>
> 1) You think that "sudo apt-get remove ffmpeg x264 libx264-dev sudo
> apt-get update sudo apt-get install build-essential checkinstall git
> libfaac-dev libjack-jackd2-dev \ libmp3lame-dev libopencore-amrnb-dev
> libopencore-amrwb-dev libsdl1.2-dev libtheora-dev \ libva-dev
> libvdpau-dev libvorbis-dev libx11-dev libxfixes-dev texi2html yasm
> zlib1g-dev cd git clone git://git.videolan.org/x264 cd x264 ./configure
> --enable-static make sudo checkinstall --pkgname=x264
> --pkgversion="3:$(./version.sh | \ awk -F'[" ]' '/POINT/{print
> $4"+git"$5}')" --backup=no --deldoc=yes \ --fstrans=no --default sudo
> apt-get remove libvpx-dev cd git clone
> ftp://git.chromium.org/webm/libvpx.git cd libvpx ./configure make sudo
> checkinstall --pkgname=libvpx --pkgversion="1:$(date +%Y%m%d%H%M)-git"
> --backup=no \ --deldoc=yes --fstrans=no --default cd git clone --depth 1
> git://source.ffmpeg.org/ffmpeg cd ffmpeg ./configure --enable-gpl
> --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb \
> --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis
> --enable-libx264 \ --enable-nonfree --enable-postproc --enable-version3
> --enable-x11grab make sudo checkinstall --pkgname=ffmpeg
> --pkgversion="5:$(date +%Y%m%d%H%M)-git" --backup=no \ --deldoc=yes
> --fstrans=no --default hash x264 ffmpeg ffplay ffprobe cd ~/ffmpeg
> make tools/qt-faststart sudo checkinstall --pkgname=qt-faststart
> --pkgversion="$(date +%Y%m%d%H%M)-git" --backup=no \ --deldoc=yes
> --fstrans=no --default install -Dm755 tools/qt-faststart \
> /usr/local/bin/qt-faststart cd ~/x264 make distclean ./configure
> --enable-static make sudo checkinstall --pkgname=x264
> --pkgversion="3:$(./version.sh | \ awk -F'[" ]' '/POINT/{print
> $4"+git"$5}')" --backup=no --deldoc=yes \ --fstrans=no --default" is
> simple??!?

No, but you're not executing that. You are, instead, working in logical 
batches:

------------------------------------------------------------------------
Step 1: Clear out old FFMpeg
------------------------------------------------------------------------
sudo apt-get remove ffmpeg x264 libx264-dev

------------------------------------------------------------------------
Step 2: Make sure you're running the latest libraries
------------------------------------------------------------------------
sudo apt-get update

------------------------------------------------------------------------
Step 3: Install packages needed to build.
------------------------------------------------------------------------
sudo apt-get install build-essential checkinstall git libfaac-dev \
libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev \
libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev \
libvdpau-dev libvorbis-dev libx11-dev libxfixes-dev texi2html yasm \
zlib1g-dev

------------------------------------------------------------------------
Step 4: Move to your home directory and check out the latest version of x264
------------------------------------------------------------------------
cd
git clone git://git.videolan.org/x264

------------------------------------------------------------------------
Step 5: Configure, build and install
------------------------------------------------------------------------
cd x264
./configure --enable-static
make
sudo checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | awk \
-F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes \ 
--fstrans=no --default

------------------------------------------------------------------------
Step 6: Clear out old libvpx
------------------------------------------------------------------------
sudo apt-get remove libvpx-dev

------------------------------------------------------------------------
Step 7: Move back to your home directory and grab the latest version of 
libvpx
------------------------------------------------------------------------
cd
git clone ftp://git.chromium.org/webm/libvpx.git

------------------------------------------------------------------------
Step 8: Configure, build and install libvpx
------------------------------------------------------------------------
cd libvpx
./configure
make
sudo checkinstall --pkgname=libvpx --pkgversion="1:$(date \
+%Y%m%d%H%M)-git" --backup=no --deldoc=yes --fstrans=no --default

------------------------------------------------------------------------
CONGRATULATIONS, your build environment is now complete. Next time you 
want to compile ffmpeg, you only need to go to step 9.
------------------------------------------------------------------------
Step 9: Go back to the home directory and download the latest ffmpeg
------------------------------------------------------------------------
cd
git clone --depth 1 git://source.ffmpeg.org/ffmpeg

------------------------------------------------------------------------
Step 10: Configure, build and install ffmpeg
------------------------------------------------------------------------
cd ffmpeg
./configure --enable-gpl --enable-libfaac --enable-libmp3lame \
--enable-libopencore-amrnb --enable-libopencore-amrwb \
--enable-libtheora --enable-libvorbis --enable-libx264 \
--enable-nonfree --enable-postproc --enable-version3 --enable-x11grab
make
sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(date \
+%Y%m%d%H%M)-git" --backup=no --deldoc=yes --fstrans=no --default

> 2) I don't think you'd ever get through such a vast amount of very
> complex shell commands without errors, so in essence, I don't believe
> you for a picosecond, and

If you break it down correctly, and approach it piece by piece, it's not 
near so bad. Even I, as a veritable linux noob, can work it out just 
from parsing the command-line mess you made.

> 3) If your assertion is that it WOULD work, why on earth is the
> described procedure not a one-click, automated task?

Because it depends on what you have already installed, what the system 
is running, what dependencies are available, and what capabilities you want.

> I suspect it isn't automatic because you can't really assume a sequence
> of shell commands that complex will work repeatably, and there will be
> changes required. This sort of puts us back at the point of "you have to
> be a coder," doesn't it?

You don't have to be a coder to throw commands into a shell one at a 
time and watch what happens. And if something does fail, a quick google 
search can typically clean up the problem. Putting it all in one shell 
script (or some other one-click method), however, can cause massive 
problems as it continues through.

For the most part, however, people don't have to compile their own 
ffmpeg. Distro managers and packagers already do that for you. The only 
time you would ever need to roll your own is if you want bleeding-edge 
features, or you are reporting a bug of some description.

> I'd throw Ubuntu on a spare box and prove it, but that would open up the
> worm-filled can of grub configuration, and I really don't have the
> requisite nine months to spend on this.

Ah. Sorry, you were trolling. Sorry, I didn't recognise the signs 
immediately. I apologise for wasting everyone's time baiting this 
particular example.


More information about the ffmpeg-user mailing list