YouTube等からダウンロードした動画をPSPで見られるようにしたいが、Ubuntuのレポジトリにあるffmpegをapt-getでインストールしてもlibx264がリンクされていないため、PSP用動画として変換できないようだ。
そこで、ffmpegをSVNからダウンロードしてコンパイル、インストールしてみた。
一応、Ubuntu 7.04と7.10で動作確認を行った。
まずはソースをダウンロード。
$ svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
configure。
liboggやlibvorbisやlibtheoraなどは必要なさそうだが、一応有効にしておいた。
$ cd ffmpeg $ ./configure --prefix=/usr/local --disable-debug --enable-memalign-hack --enable-pp --enable-gpl --enable-pthreads --enable-liba52 --enable-liba52bin --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libmp3lame --enable-libogg --disable-ffplay --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid
必要なら環境変数CFLAGSにGCCの最適化オプションを指定する。
Optimize Options - Using the GNU Compiler Collection (GCC)
i386 and x86-64 Options - Using the GNU Compiler Collection (GCC)
結果、以下のようにして実行。
$ CFLAGS="-O3 -march=nocona -fforce-addr -msse2 -pipe -mfpmath=sse -ffast-math" ./configure --prefix=/usr/local --disable-debug --enable-memalign-hack --enable-pp --enable-gpl --enable-pthreads --enable-liba52 --enable-liba52bin --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libmp3lame --enable-libogg --disable-ffplay --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid
コンパイルに必要なヘッダーファイル等がない場合はエラーになるので、config.errを確認し、必要なパッケージをインストールする。
私の環境では以下のパッケージをインストールした。
$ sudo apt-get install libfaad2-dev $ sudo apt-get install libmp4v2-dev $ sudo apt-get install liba52-dev $ sudo apt-get install libfaac-dev $ sudo apt-get install liblame-dev $ sudo apt-get install libogg-dev $ sudo apt-get install libtheora-dev $ sudo apt-get install libvorbis-dev $ sudo apt-get install libx264-dev $ sudo apt-get install libxvidcore4-dev
makeする。
$ make
バージョンの確認。
$ ./ffmpeg -version FFmpeg version SVN-r10927, Copyright (c) 2000-2007 Fabrice Bellard, et al. configuration: --prefix=/usr/local --disable-debug --enable-memalign-hack --enable-pp --enable-gpl --enable-pthreads --enable-liba52 --enable-liba52bin --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libmp3lame --enable-libogg --disable-ffplay --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid libavutil version: 49.5.0 libavcodec version: 51.47.2 libavformat version: 51.17.1 built on Nov 5 2007 16:22:30, gcc: 4.1.2 (Ubuntu 4.1.2-0ubuntu4) FFmpeg SVN-r10927 libavutil 3212544 libavcodec 3354370 libavformat 3346689
フォーマットの一覧。
$ ./ffmpeg -formats FFmpeg version SVN-r10927, Copyright (c) 2000-2007 Fabrice Bellard, et al. configuration: --prefix=/usr/local --disable-debug --enable-memalign-hack --enable-pp --enable-gpl --enable-pthreads --enable-liba52 --enable-liba52bin --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libmp3lame --enable-libogg --disable-ffplay --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid libavutil version: 49.5.0 libavcodec version: 51.47.2 libavformat version: 51.17.1 built on Nov 5 2007 16:22:30, gcc: 4.1.2 (Ubuntu 4.1.2-0ubuntu4) File formats: E 3g2 3gp2 format E 3gp 3gp format D 4xm 4X Technologies format D MTV MTV format DE RoQ Id RoQ format D aac ADTS AAC DE ac3 raw ac3 E adts ADTS AAC DE aiff Audio IFF DE alaw pcm A law format DE amr 3gpp amr file format D apc CRYO APC format D ape Monkey's Audio DE asf asf format E asf_stream asf format DE au SUN AU Format DE avi avi format D avs avs format D bethsoftvid Bethesda Softworks 'Daggerfall' VID format D c93 Interplay C93 E crc crc testing format D daud D-Cinema audio format D dsicin Delphine Software International CIN format D dts raw dts DE dv DV video format D dv1394 dv1394 A/V grab E dvd MPEG2 PS format (DVD VOB) D dxa dxa D ea Electronic Arts Multimedia Format D ea_cdata Electronic Arts cdata DE ffm ffm format D film_cpk Sega FILM/CPK format DE flac raw flac D flic FLI/FLC/FLX animation format DE flv flv format E framecrc framecrc testing format DE gif GIF Animation DE gxf GXF format DE h261 raw h261 DE h263 raw h263 DE h264 raw H264 video format D idcin Id CIN format DE image2 image2 sequence DE image2pipe piped image2 sequence D ingenient Ingenient MJPEG D ipmovie Interplay MVE format DE m4v raw MPEG4 video format DE matroska Matroska File Format DE mjpeg MJPEG video D mm American Laser Games MM format DE mmf mmf format E mov mov format D mov,mp4,m4a,3gp,3g2,mj2 QuickTime/MPEG4/Motion JPEG 2000 format E mp2 MPEG audio layer 2 DE mp3 MPEG audio layer 3 E mp4 mp4 format D mpc musepack DE mpeg MPEG1 System format E mpeg1video MPEG video E mpeg2video MPEG2 video DE mpegts MPEG2 transport stream format D mpegtsraw MPEG2 raw transport stream format D mpegvideo MPEG video E mpjpeg Mime multipart JPEG format DE mulaw pcm mu law format D mxf MXF format D nsv NullSoft Video format E null null video format DE nut nut format D nuv NuppelVideo format DE ogg Ogg format DE oss audio grab and output E psp psp mp4 format D psxstr Sony Playstation STR format DE rawvideo raw video format D redir Redirector format DE rm rm format E rtp RTP output format D rtsp RTSP input format DE s16be pcm signed 16 bit big endian format DE s16le pcm signed 16 bit little endian format DE s8 pcm signed 8 bit format D sdp SDP D shn raw shorten D siff Beam Software SIFF D smk Smacker Video D sol Sierra SOL Format E svcd MPEG2 PS format (VOB) DE swf Flash format D thp THP D tiertexseq Tiertex Limited SEQ format D tta true-audio D txd txd format DE u16be pcm unsigned 16 bit big endian format DE u16le pcm unsigned 16 bit little endian format DE u8 pcm unsigned 8 bit format D vc1 raw vc1 E vcd MPEG1 System format (VCD) D video4linux video grab D video4linux2 video grab D vmd Sierra VMD format E vob MPEG2 PS format (VOB) DE voc Creative Voice File format DE wav wav format D wc3movie Wing Commander III movie format D wsaud Westwood Studios audio format D wsvqa Westwood Studios VQA format D wv WavPack DE yuv4mpegpipe YUV4MPEG pipe format Codecs: D V 4xm D V D 8bps D V VMware video D V D aasc EA ac3 D A adpcm_4xm DEA adpcm_adx D A adpcm_ct D A adpcm_ea D A adpcm_ea_r1 D A adpcm_ea_r2 D A adpcm_ea_r3 D A adpcm_ea_xas D A adpcm_ima_amv D A adpcm_ima_dk3 D A adpcm_ima_dk4 D A adpcm_ima_ea_eacs D A adpcm_ima_ea_sead D A adpcm_ima_qt D A adpcm_ima_smjpeg DEA adpcm_ima_wav D A adpcm_ima_ws DEA adpcm_ms D A adpcm_sbpro_2 D A adpcm_sbpro_3 D A adpcm_sbpro_4 DEA adpcm_swf D A adpcm_thp D A adpcm_xa DEA adpcm_yamaha D A alac D V amv D A ape DEV D asv1 DEV D asv2 D A atrac 3 D V D avs D V bethsoftvid DEV bmp D V D c93 D V D camstudio D V D camtasia D V D cavs D V D cinepak D V D cljr D A cook D V D cyuv D A dca DEV D dnxhd D A dsicinaudio D V D dsicinvideo DES dvbsub DES dvdsub DEV D dvvideo D V dxa DEV D ffv1 DEVSD ffvhuff DEA flac DEV D flashsv D V D flic DEVSD flv D V D fraps DEA g726 DEV gif DEV D h261 DEVSDT h263 D VSD h263i EV h263p D V DT h264 DEVSD huffyuv D V D idcinvideo D A imc D V D indeo2 D V indeo3 D A interplay_dpcm D V D interplayvideo DEV D jpegls D V kmvc D A liba52 EA libfaac D A libfaad EA libmp3lame EV libtheora EA libvorbis EV libx264 EV libxvid EV ljpeg D V D loco D A mace3 D A mace6 D V D mdec DEV D mjpeg D V D mjpegb D V D mmvideo DEA mp2 D A mp3 D A mp3adu D A mp3on4 D A mpc sv7 DEVSDT mpeg1video DEVSDT mpeg2video DEVSDT mpeg4 D A mpeg4aac D VSDT mpegvideo DEVSD msmpeg4 DEVSD msmpeg4v1 DEVSD msmpeg4v2 D V D msrle D V D msvideo1 D V D mszh D A nellymoser D V D nuv DEV pam DEV pbm DEA pcm_alaw DEA pcm_mulaw DEA pcm_s16be DEA pcm_s16le DEA pcm_s24be DEA pcm_s24daud DEA pcm_s24le DEA pcm_s32be DEA pcm_s32le DEA pcm_s8 DEA pcm_u16be DEA pcm_u16le DEA pcm_u24be DEA pcm_u24le DEA pcm_u32be DEA pcm_u32le DEA pcm_u8 DEA pcm_zork DEV pgm DEV pgmyuv DEV png DEV ppm D V ptx D A qdm2 D V D qdraw D V D qpeg DEV D qtrle DEV rawvideo D A real_144 D A real_288 DEA roq_dpcm DEV D roqvideo D V D rpza DEV D rv10 DEV D rv20 DEV sgi D A shorten D A smackaud D V smackvid D V D smc DEV snow D A sol_dpcm DEA sonic EA sonicls D V D sp5x DEV D svq1 D VSD svq3 DEV targa D V theora D V D thp D V D tiertexseqvideo DEV tiff D V D truemotion1 D V D truemotion2 D A truespeech D A tta D V txd D V D ultimotion D V vb D V vc1 D V D vcr1 D A vmdaudio D V D vmdvideo DEA vorbis D V vp3 D V D vp5 D V D vp6 D V D vp6a D V D vp6f D V D vqavideo D A wavpack DEA wmav1 DEA wmav2 DEVSD wmv1 DEVSD wmv2 D V wmv3 D V D wnv1 D A ws_snd1 D A xan_dpcm D V D xan_wc3 D V D xl D S xsub DEV D zlib DEV zmbv Supported file protocols: file: http: pipe: rtp: tcp: udp: Frame size, frame rate abbreviations: ntsc pal qntsc qpal sntsc spal film ntsc-film sqcif qcif cif 4cif Note, the names of encoders and decoders do not always match, so there are several cases where the above table shows encoder only or decoder only entries even though both encoding and decoding are supported. For example, the h263 decoder corresponds to the h263 and h263p encoders, for file formats it is even worse.