ルギア君の戯言

雑多な記事。

ffmpeg

いっつも Momonga Linux を使っていると問題が発生するところが ffmpeg なのは気のせいということにしておくか。

[lugia@lugia-castle MHF]$ rpm -q ffmpeg
ffmpeg-0.4.9-0.20080727.4m.mo5.i686
[lugia@lugia-castle MHF]$ ffmpeg -i mm_mr034.ogg -acodec pcm_s16le -ac 2 -ar 48000 mm_mr034.wav
FFmpeg version SVN-r14424, Copyright (c) 2000-2008 Fabrice Bellard, et al.
  configuration: --prefix=/usr --libdir=/usr/lib --mandir=/usr/share/man --incdir=/usr/include/ffmpeg --extra-libs=-lX11 --enable-libvorbis --enable-libmp3lame --enable-libtheora --enable-libfaad --enable-libfaadbin --enable-libfaac --enable-libxvid --enable-libx264 --enable-liba52 --enable-liba52bin --enable-postproc --enable-shared --enable-pthreads --enable-gpl --enable-swscale --enable-avfilter --enable-avfilter-lavf --disable-optimizations --disable-stripping
  libavutil version: 49.7.0
  libavcodec version: 51.61.0
  libavformat version: 52.18.0
  libavdevice version: 52.0.0
  libavfilter version: 0.0.0
  built on Mar 26 2009 01:10:31, gcc: 4.3.1 20080728 (stable)
Input #0, ogg, from 'mm_mr034.ogg':
  Duration: 00:02:37.52, start: 0.000000, bitrate: 48 kb/s
    Stream #0.0: Audio: vorbis, 48000 Hz, stereo, 48 kb/s
File 'mm_mr034.wav' already exists. Overwrite ? [y/N] y
Output #0, wav, to 'mm_mr034.wav':
    Stream #0.0: Audio: pcm_s16le, 48000 Hz, stereo, 1536 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
Press [q] to stop encoding
セグメンテーション違反です

でも ffmpeg って依存関係の根っこの方だから、無闇にアップデートするわけにもいかないしな。


というわけで、どうすれば依存関係を壊さずに ffmpeg をアップデートできるか考える会を開催しよう。
活躍してもらうのはこの yum 君。

[lugia@lugia-castle PKGS]$ sudo yum update ffmpeg                                    
Loaded plugins: aliases, allowdowngrade, changelog, downloadonly, fastestmirror,     
              : fedorakmod, filter-data, installonlyn, kernel-module, keys,          
              : list-data, merge-conf, priorities, protect-packages,                 
              : protectbase, refresh-packagekit, refresh-updatesd, security,         
              : tmprepo, tsflags, upgrade-helper, verify, versionlock                
Loading mirror speeds from cached hostfile                                           
 * base: ftp.iij.ad.jp                                                               
 * updates-released: ftp.iij.ad.jp                                                   
local-development         100% |=========================| 2.0 kB    00:00           
primary.sqlite.bz2        100% |=========================| 1.6 MB    00:00           
base                      100% |=========================| 2.4 kB    00:00           
updates-released          100% |=========================| 2.4 kB    00:00           
(中略:以下適宜省略)
---> Package ffmpeg.i686 0:0.5-1m.mo6 set to be updated
---> Package libakode.i686 0:2.0.2-14m.mo6 set to be updated
---> Package vlc.i686 0:0.9.8a-4m.mo6 set to be updated
---> Package alsa-plugins-a52.i686 0:1.0.18-4m.mo6 set to be updated                 
---> Package gegl.i686 0:0.0.22-2m.mo6 set to be updated      
---> Package k3b.i686 0:1.0.5-7m.mo6 set to be updated                               
---> Package transcode.i686 0:1.0.7-0.991.2m.mo6 set to be updated                   
---> Package x264.i686 0:0.0.1127-0.20090309.1m.mo6 set to be updated                
---> Package alsa-plugins-lavcrate.i686 0:1.0.18-4m.mo6 set to be updated            
---> Package kino.i686 0:1.3.1-2m.mo6 set to be updated                              
---> Package dirac-libs.i686 0:1.0.2-1m.mo6 set to be updated                              
---> Package xine-lib.i686 0:1.1.16.2-1m.mo6 set to be updated
---> Package mlt.i686 0:0.3.6-1m.mo6 set to be updated      
---> Package libquicktime.i686 0:1.1.1-2m.mo6 set to be updated
---> Package ffmpeg-devel.i686 0:0.5-1m.mo6 set to be updated                              
---> Package xine-lib-esd.i686 0:1.1.16.2-1m.mo6 set to be updated                         
---> Package xine-lib-musepack.i686 0:1.1.16.2-1m.mo6 set to be updated                    
---> Package x264-devel.i686 0:0.0.1127-0.20090309.1m.mo6 set to be updated                
---> Package xine-lib-alsa.i686 0:1.1.16.2-1m.mo6 set to be updated                        
---> Package xine-lib-gdk-pixbuf.i686 0:1.1.16.2-1m.mo6 set to be updated                  
---> Package xine-lib-sdl.i686 0:1.1.16.2-1m.mo6 set to be updated                         
---> Package xine-lib-smb.i686 0:1.1.16.2-1m.mo6 set to be updated                         
---> Package xine-lib-docs.i686 0:1.1.16.2-1m.mo6 set to be updated                        
---> Package avidemux.i686 0:2.4.3-4m.mo6 set to be updated                                
---> Package xine-lib-xcb.i686 0:1.1.16.2-1m.mo6 set to be updated                         
---> Package gegl-devel.i686 0:0.0.22-2m.mo6 set to be updated                
---> Package xine-lib-gnomevfs.i686 0:1.1.16.2-1m.mo6 set to be updated                    
---> Package kino-devel.i686 0:1.3.1-2m.mo6 set to be updated                              
---> Package libquicktime-devel.i686 0:1.1.1-2m.mo6 set to be updated                      
---> Package xine-lib-arts.i686 0:1.1.16.2-1m.mo6 set to be updated                        
---> Package libakode-devel.i686 0:2.0.2-14m.mo6 set to be updated                         
---> Package vlc-plugin.i686 0:0.9.8a-4m.mo6 set to be updated                             
---> Package xine-lib.i686 0:1.1.16.2-1m.mo6 set to be updated  
---> Package mlt-devel.i686 0:0.3.6-1m.mo6 set to be updated                               
---> Package xine-lib-oggvorbis.i686 0:1.1.16.2-1m.mo6 set to be updated                   
---> Package xine-lib-oss.i686 0:1.1.16.2-1m.mo6 set to be updated                         
---> Package libv4l.i686 0:0.5.8-1m.mo6 set to be updated                                  
---> Package xine-lib-jack.i686 0:1.1.16.2-1m.mo6 set to be updated                        
---> Package xine-lib-xv.i686 0:1.1.16.2-1m.mo6 set to be updated                          
---> Package mplayer.i686 0:1.0-0.992.16m.mo6 set to be updated                            
---> Package xine-lib-flac.i686 0:1.1.16.2-1m.mo6 set to be updated                        
---> Package xine-lib-pulseaudio.i686 0:1.1.16.2-1m.mo6 set to be updated                  
---> Package xine-lib-w32dll.i686 0:1.1.16.2-1m.mo6 set to be updated
---> Package glib2-devel.i686 0:2.20.0-1m.mo6 set to be updated
---> Package babl-devel.i686 0:0.0.22-2m.mo6 set to be updated
---> Package xine-lib.i686 0:1.1.16.2-1m.mo6 set to be updated
---> Package glib2.i686 0:2.20.0-1m.mo6 set to be updated
---> Package xine-lib.i686 0:1.1.16.2-1m.mo6 set to be updated
---> Package babl.i686 0:0.0.22-2m.mo6 set to be updated
--> Finished Dependency Resolution
xine-lib-1.1.16.2-1m.mo6.i686 from local-development has depsolving problems
  --> Missing Dependency: libMagickWand.so.2 is needed by package xine-lib-1.1.16.2-1m.mo6.i686 (local-development)
xine-lib-1.1.16.2-1m.mo6.i686 from local-development has depsolving problems
  --> Missing Dependency: libMagickCore.so.2 is needed by package xine-lib-1.1.16.2-1m.mo6.i686 (local-development)
Error: Missing Dependency: libMagickWand.so.2 is needed by package xine-lib-1.1.16.2-1m.mo6.i686 (local-development)
Error: Missing Dependency: libMagickCore.so.2 is needed by package xine-lib-1.1.16.2-1m.mo6.i686 (local-development)

libMagick か。


じゃあ、ビルドするか。

[lugia@lugia-castle pkgs]$ cat ImageMagick/ImageMagick.spec | grep BuildRequires
BuildRequires: libtool, libjpeg-devel, libtiff-devel, bzip2-devel
BuildRequires: freetype-devel >= 2.3.1-2m, expat-devel
BuildRequires: libICE-devel, libSM-devel, libX11-devel
BuildRequires: libXext-devel, libXt-devel,
BuildRequires: ghostscript >= 7.07-14m
BuildRequires: gcc-c++ >= 3.4.1-1m
BuildRequires: autoconf >= 2.61
BuildRequires: automake >= 1.5-20m
BuildRequires: libpng-devel >= 1.2.12-2m
BuildRequires: zlib-devel >= 1.1.4-5m
BuildRequires: libwmf-devel >= 0.2.8.3
BuildRequires: libxml2-devel >= 2.4.9
BuildRequires: graphviz-devel >= 1.18
BuildRequires: jasper-devel
BuildRequires: OpenEXR >= 1.6.1
BuildRequires: dgs-devel

問題になるのはバージョンだけだから少しは楽だな。

[lugia@lugia-castle pkgs]$ rpm -q freetype-devel
freetype-devel-2.3.6-1m.mo5.i686
[lugia@lugia-castle pkgs]$ rpm -q ghostscript
ghostscript-8.62-5m.mo5.i686
[lugia@lugia-castle pkgs]$ rpm -q gcc-c++
gcc-c++-4.3.1-7m.mo5.i686
[lugia@lugia-castle pkgs]$ rpm -q autoconf
autoconf-2.61-5m.mo5.noarch
[lugia@lugia-castle pkgs]$ rpm -q automake
automake-1.10.1-3m.mo5.noarch
[lugia@lugia-castle pkgs]$ rpm -q libpng-devel
libpng-devel-1.2.35-1m.mo5.i686
[lugia@lugia-castle pkgs]$ rpm -q zlib-devel
zlib-devel-1.2.3-4m.mo5.i686
[lugia@lugia-castle pkgs]$ rpm -q libwmf-devel
libwmf-devel-0.2.8.4-10m.mo5.i686
[lugia@lugia-castle pkgs]$ rpm -q libxml2-devel
libxml2-devel-2.7.2-2m.mo5.i686
[lugia@lugia-castle pkgs]$ rpm -q graphviz-devel
graphviz-devel-2.20.3-1m.mo5.i686
[lugia@lugia-castle pkgs]$ rpm -q OpenEXR
OpenEXR-1.6.1-2m.mo5.i686
[lugia@lugia-castle pkgs]$

失敗でもしない限りは問題なさそうだな。