プログラム / 2009/10/17 (Sat) / 編集 |
なんだかんだで動画変換が必要な今日この頃、Macbookにffmpeg入れてみた。
一口にffmpegといっても、実はストリーミングとか動画編集とかいろいろできて付加するライブラリの種類なんかで出来ることは結構変ってくる。今回の目標はconfigureで対応している「External library support:」なコーディックを一通り入れるて、いろんな形式の動画を変換できるようにすること。
一口にffmpegといっても、実はストリーミングとか動画編集とかいろいろできて付加するライブラリの種類なんかで出来ることは結構変ってくる。今回の目標はconfigureで対応している「External library support:」なコーディックを一通り入れるて、いろんな形式の動画を変換できるようにすること。
External library support: --enable-avisynth enable reading of AVISynth script files [no] --enable-bzlib enable bzlib [autodetect] --enable-libopencore-amrnb enable AMR-NB de/encoding via libopencore-amrnb [no] --enable-libopencore-amrwb enable AMR-WB decoding via libopencore-amrwb [no] --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394 and libraw1394 [no] --enable-libdirac enable Dirac support via libdirac [no] --enable-libfaac enable FAAC support via libfaac [no] --enable-libfaad enable FAAD support via libfaad [no] --enable-libfaadbin open libfaad.so.0 at runtime [no] --enable-libgsm enable GSM support via libgsm [no] --enable-libmp3lame enable MP3 encoding via libmp3lame [no] --enable-libnut enable NUT (de)muxing via libnut, native (de)muxer exists [no] --enable-libopenjpeg enable JPEG 2000 decoding via OpenJPEG [no] --enable-libschroedinger enable Dirac support via libschroedinger [no] --enable-libspeex enable Speex decoding via libspeex [no] --enable-libtheora enable Theora encoding via libtheora [no] --enable-libvorbis enable Vorbis encoding via libvorbis, native implementation exists [no] --enable-libx264 enable H.264 encoding via x264 [no] --enable-libxvid enable Xvid encoding via xvidcore, native MPEG-4/Xvid encoder exists [no] --enable-mlib enable Sun medialib [no] --enable-zlib enable zlib [autodetect]なので、「--enable-avisynth(動画編集スクリプト言語)」と「--enable-libdc1394(カメラからの取り込み)」「--enable-libschroedinger(diracサポート、--enable-libdiracがあるし、、、)」「--enable-mlib(C言語で動画処理な関数群)」はなしの方向で。別に対応コーディックが増える訳でもなし、、、
事前準備
以下のコマンドを使えるように準備しておく。aclocal,autoheader,libtoolize,automake,autoconf,pkg-config,git
pkg-config用の設定も忘れずに!pkg-configの設定ファイル(*.pc)があるディレクトリ(私の場合は「/usr/local/lib/pkgconfig」)にパスを通しておかないとldエラーがでることがあるよ。以下はtcshの場合。
setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig
各種ライブラリのインストール
使用ライブラリ、すべて最新版をインストールするとなおよし。 横に並んでるのは依存関係のあるものなので、左から順番に、、、 緑字は面倒だったので最新版にしなかったもの、()内はバージョンもしくはリビジョン番号ffmpeg (20261)
zlib(1.2.3)
pthread
nasm(0.98.40),yasm(0.7.0.2066),x264(2245) : H.264形式用
faad2 (2.7),faac(1.28) : aac形式用
gsm(1.0.13)
lame (398-2) : mp3形式用
libnut(664)
libogg(1.1.4),libvorbis(1.2.3) : ogg形式用
libtheora(1.1.1)
xvidcore (1.2.2) : Xvid形式用
a52dec(0.7.4)
opencore-amr(0.1.2):3gp形式用
dirac (1.0.2):.avi .mkv .ogvとからしい
speex (1.2rc1) : speex用(VoIPアプリケーションやポッドキャスト)
openjpeg (v1_3)
コンパイル方法
- ./autogen もしくは ./autogen.sh もしくは ./bootstrap
- ./configure
- make
- sudo make install
nut
ソースファイルを一部修正、「libnut/demuxer.cの16行目、ftelloをftellに変更」gsm
install先の指定のためにMakefileを自分で修正しないといけないという仕様INSTALL_ROOT = /usr/local
ヘッダファイルの保存先(デフォルトではinc)も変更が必要。
GSM_INSTALL_INC = $(GSM_INSTALL_ROOT)/include
libvorbis
bashを使って「OGG_LIBS="-logg" ./configure」、exitも忘れずに%bash $OGG_LIBS="-logg" ./configure $make $sudo make install $exit
xvidcore
パッチを当てます。xvidcore-1.2.1-pthreads.diff
diff -urN xvidcore.orig/build/generic/configure.in xvidcore/build/generic/configure.in --- xvidcore.orig/build/generic/configure.in Tue Dec 2 01:35:47 2008 +++ xvidcore/build/generic/configure.in Wed Feb 11 14:00:06 2009 @@ -562,13 +562,13 @@ AC_CHECK_HEADER( pthread.h, AC_CHECK_LIB( - pthread, + pthread -lwsock32, pthread_create, AC_CHECK_LIB( - pthread, + pthread -lwsock32, pthread_join, - SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_PTHREAD" - SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS -lpthread", + SPECIFIC_CFLAGS="$SPECIFIC_CFLAGS -DHAVE_PTHREAD -DPTW32_STATIC_LIB" + SPECIFIC_LDFLAGS="$SPECIFIC_LDFLAGS -lpthread -lwsock32", AC_MSG_WARN(Pthread not supported. No SMP support)), AC_MSG_WARN(Pthread not supported. No SMP support)), AC_MSG_WARN(Pthread not supported. No SMP support)) diff -urN xvidcore.orig/src/encoder.c xvidcore/src/encoder.c --- xvidcore.orig/src/encoder.c Thu Feb 8 22:10:24 2007 +++ xvidcore/src/encoder.c Wed Feb 11 14:01:49 2009 @@ -134,11 +134,26 @@ } +#ifdef PTW32_STATIC_LIB +static void +detach_ptw32(void) +{ + pthread_win32_thread_detach_np(); + pthread_win32_process_detach_np(); +} +#endif + int enc_create(xvid_enc_create_t * create) { Encoder *pEnc; int n; + +#ifdef PTW32_STATIC_LIB + pthread_win32_process_attach_np(); + pthread_win32_thread_attach_np(); + atexit(detach_ptw32); +#endif if (XVID_VERSION_MAJOR(create->version) != 1) /* v1.x.x */ return XVID_ERR_VERSION; diff -urN xvidcore.orig/src/motion/motion_smp.h xvidcore/src/motion/motion_smp.h --- xvidcore.orig/src/motion/motion_smp.h Wed Nov 26 10:04:34 2008 +++ xvidcore/src/motion/motion_smp.h Wed Feb 11 14:03:29 2009 @@ -32,11 +32,15 @@ #ifdef WIN32 # include引用:[お気に入りの動画を携帯で見よう]Xvidのコンパイル&インストール (1.2.1以降)-# define pthread_t HANDLE -# define pthread_create(t,u,f,d) *(t)=CreateThread(NULL,0,f,d,0,NULL) -# define pthread_join(t,s) { WaitForSingleObject(t,INFINITE); \ + +# ifdef HAVE_PTHREAD +# include +# else +# define pthread_t HANDLE +# define pthread_create(t,u,f,d) *(t)=CreateThread(NULL,0,f,d,0,NULL) +# define pthread_join(t,s) { WaitForSingleObject(t,INFINITE); \ CloseHandle(t); } -# define sched_yield() Sleep(0); +# define sched_yield() Sleep(0); static __inline int pthread_num_processors_np() { DWORD p_aff, s_aff, r = 0; @@ -44,6 +48,7 @@ for(; p_aff != 0; p_aff>>=1) r += p_aff&1; return r; } +#endif #elif defined(SYS_BEOS) diff -urN xvidcore.orig/src/utils/x86_asm/cpuid.asm xvidcore/src/utils/x86_asm/cpuid.asm --- xvidcore.orig/src/utils/x86_asm/cpuid.asm Tue Dec 2 23:00:09 2008 +++ xvidcore/src/utils/x86_asm/cpuid.asm Wed Feb 11 14:03:55 2009 @@ -61,6 +61,7 @@ vendorAMD: db "AuthenticAMD" +ALIGN 16 ;============================================================================= ; Macros
f1718874b.txt
--- /c/Documents and Settings/Jason/Desktop/plugin_lumimasking.c 2006-05-05 21:37:15.000000000 -0700 +++ ../src/plugins/plugin_lumimasking.c 2008-02-22 10:11:53.310000000 -0800 @@ -2,11 +2,11 @@ * * XVID MPEG-4 VIDEO CODEC * - XviD plugin: performs a lumimasking algorithm on encoded frame - * * Copyright(C) 2002-2003 Peter Ross引用:[Doom9's forum]VAQ: Making Xvid's Adaptive Quantization Not Suck- * 2002 Christoph Lampert + * 2002 Christoph Lampert * * This program is free software ; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation ; either version 2 of the License, or * (at your option) any later version. @@ -23,10 +23,11 @@ * $Id: plugin_lumimasking.c,v 1.6 2006/05/06 04:37:15 syskin Exp $ * ****************************************************************************/ #include +#include #include "../xvid.h" #include "../global.h" #include "../portab.h" #include "../utils/emms.h" @@ -155,31 +156,31 @@ int *out, int num, int min_quant, int max_quant); -static int -lumi_plg_frame(lumi_data_t *handle, xvid_plg_data_t *data) +static int lumi_plg_frame(lumi_data_t *handle, xvid_plg_data_t *data) { - int i, j; - - float global = 0.0f; + //Don't apply variance-masking to B-frames. + if (data->type == XVID_TYPE_BVOP) return 0; - const float DarkAmpl = 14 / 4; - const float BrightAmpl = 10 / 3; - float DarkThres = 90; - float BrightThres = 200; + int i, j; - const float GlobalDarkThres = 60; - const float GlobalBrightThres = 170; + /* Arbitrary centerpoint for variance-based AQ. Roughly the same as used in x264. */ + float center = 14000; - if (data->type == XVID_TYPE_BVOP) return 0; + /* Arbitrary strength for variance-based AQ. */ + float strength = 0.2; /* Do this for all macroblocks individually */ - for (j = 0; j < data->mb_height; j++) { - for (i = 0; i < data->mb_width; i++) { - int k, l, sum = 0; + for (j = 0; j < data->mb_height; j++) + { + for (i = 0; i < data->mb_width; i++) + { + int k, l; + unsigned int sum = 0; + unsigned int sum_of_squares = 0; unsigned char *ptr; /* Initialize the current quant value to the frame quant */ handle->quant[j*data->mb_width + i] = (float)data->quant; @@ -187,41 +188,34 @@ /* Get the MB address */ ptr = data->current.plane[0]; ptr += 16*j*data->current.stride[0] + 16*i; - /* Accumulate luminance */ + /* Accumulate sum and sum of squares over the MB */ for (k = 0; k < 16; k++) for (l = 0; l < 16; l++) - sum += ptr[k*data->current.stride[0] + l]; + { + int val = ptr[k*data->current.stride[0] + l]; + sum += val; + sum_of_squares += val * val; + } + + /* Variance = SSD - SAD^2 / (numpixels) */ + int variance = sum_of_squares - sum * sum / 256; - handle->val[j*data->mb_width + i] = (float)sum/256.0f; - - /* Accumulate the global frame luminance */ - global += (float)sum/256.0f; + handle->val[j*data->mb_width + i] = variance; } } - - /* Normalize the global luminance accumulator */ - global /= data->mb_width*data->mb_height; - - DarkThres = DarkThres*global/127.0f; - BrightThres = BrightThres*global/127.0f; - - - /* Apply luminance masking only to frames where the global luminance is - * higher than DarkThreshold and lower than Bright Threshold */ - if ((global < GlobalBrightThres) && (global > GlobalDarkThres)) { - - /* Apply the luminance masking formulas to all MBs */ - for (i = 0; i < data->mb_height; i++) { - for (j = 0; j < data->mb_width; j++) { - if (handle->val[i*data->mb_width + j] < DarkThres) - handle->quant[i*data->mb_width + j] *= 1 + DarkAmpl * (DarkThres - handle->val[i*data->mb_width + j]) / DarkThres; - else if (handle->val[i*data->mb_width + j] > BrightThres) - handle->quant[i*data->mb_width + j] *= 1 + BrightAmpl * (handle->val[i*data->mb_width + j] - BrightThres) / (255 - BrightThres); - } + + /* Apply the variance masking formula to all MBs */ + for (i = 0; i < data->mb_height; i++) + { + for (j = 0; j < data->mb_width; j++) + { + float value = handle->val[i*data->mb_width + j]; + float qscale_diff = strength * logf(value / center); + handle->quant[i*data->mb_width + j] *= (1.0 + qscale_diff); } } /* Normalize the quantizer field */ data->quant = normalize_quantizer_field(handle->quant, @@ -246,11 +240,11 @@ /***************************************************************************** * Helper functions ****************************************************************************/ -#define RDIFF(a, b) ((int)(a+0.5)-(int)(b+0.5)) +#define RDIFF(a, b) ((int)(a+0.5)-(int)(b+0.5)) static int normalize_quantizer_field(float *in, int *out, int num,
%patch -p1 < xvidcore-1.2.1-pthreads.diff %patch -p1 < f1718874b.txt本体は「build/generic」にあるので移動してからコンパイルすること
dirac
make installで「cp -dR」を実行しようとして「そんなオプションないよ」と言われたら、「doc/Makefile」内の「cp -dR」を「cp -R」に変更しませうopenjpeg
%make osx %sudo make osxinstall
ffmpeg本体
mp3lame用パッチ
そのままだとlibmp3lameを利用したmp3への変換時にエラーが出る(lame: output buffer too small)のでファイル(libavcodec/libmp3lame.c)にパッチを当てませう。ffmpeg-libmp3lame.patch(patch)
Index: libavcodec/libmp3lame.c =================================================================== --- libavcodec/libmp3lame.c (リビジョン 16716) +++ libavcodec/libmp3lame.c (作業コピー) @@ -34,6 +34,7 @@ int stereo; uint8_t buffer[BUFFER_SIZE]; int buffer_index; + int buffer_flushed; } Mp3AudioContext; static av_cold int MP3lame_encode_init(AVCodecContext *avctx) @@ -73,6 +74,8 @@ avctx->coded_frame= avcodec_alloc_frame(); avctx->coded_frame->key_frame= 1; + s->buffer_flushed = 0; + return 0; err_close: @@ -166,13 +169,15 @@ BUFFER_SIZE - s->buffer_index ); } - }else{ + }else if(data == NULL && s->buffer_flushed == 0){ lame_result= lame_encode_flush( s->gfp, s->buffer + s->buffer_index, BUFFER_SIZE - s->buffer_index ); - } + s->buffer_flushed = 1; + }else + lame_result = 0; if(lame_result < 0){ if(lame_result==-1) {引用:[Craving Explorer Wiki]同梱ffmpegのlameエンコードの不具合
%patch -p0 < ffmpeg-libmp3lame.patch
openjpeg用ソースコード修正
コンパイル中に「libavcodec/libopenjpeg.c」で「Undefined symbols: "_opj_decode_with_info"」とか言われるエラー発生。libopenjpegヘッダファイルの「/usr/include/openjpeg.h」をみても opj_decode_with_info なんて関数はない。なので「libavcodec/libopenjpeg.c」をみてみると
image = opj_decode_with_info(dec, stream, NULL);
ここでiamgeがopj_image_t*型、decがopj_dinfo_t*型、streamがopj_cio_t*型だったので、「/usr/include/openjpeg.h」にあった
opj_image_t* OPJ_CALLCONV opj_decode(opj_dinfo_t *dinfo, opj_cio_t *cio);
と置き換えてみる。
「libavcodec/libopenjpeg.c」の103行目付近
// Decode the codestream //image = opj_decode_with_info(dec, stream, NULL);//そんなのない image = opj_decode(dec, stream);
いまんとこ問題なし。
コンパイルオプション
赤字の連続はセットでつけないといけないもの、緑字は環境依存なもの(いらない人もいる)./configure --extra-cflags="-I/usr/local/include" --extra-ldflags="-L/usr/local/lib/" --enable-shared --enable-gpl --enable-postproc --enable-avfilter --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libspeex --enable-libdirac --enable-libopenjpeg --enable-libfaac --enable-nonfree --enable-libfaad --disable-decoder=aac --enable-libmp3lame --enable-libnut --enable-libtheora --enable-libvorbis --enable-libgsm --enable-libx264 --enable-pthreads --enable-libxvid --enable-encoder=libogg --enable-decoder=liba52
対応フォーマットと対応コーディック
上のやり方で作ったときの対応フォーマットFile formats: D. = Demuxing supported .E = Muxing supported -- E 3g2 3GP2 format E 3gp 3GP format D 4xm 4X Technologies format D IFF IFF format D ISS Funcom ISS format D MTV MTV format DE RoQ raw id RoQ format D aac raw ADTS AAC DE ac3 raw AC-3 E adts ADTS AAC D aea MD STUDIO audio 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 ass SSA/ASS format DE au SUN AU format DE avi AVI format E avm2 Flash 9 (AVM2) format D avs AVS format D bethsoftvid Bethesda Softworks VID format D bfi Brute Force & Ignorance D c93 Interplay C93 D caf Apple Core Audio Format D cavsvideo raw Chinese AVS video E crc CRC testing format DE daud D-Cinema audio format DE dirac raw Dirac DE dnxhd raw DNxHD (SMPTE VC-3) D dsicin Delphine Software International CIN format DE dts raw DTS DE dv DV video format E dvd MPEG-2 PS format (DVD VOB) D dxa DXA D ea Electronic Arts Multimedia Format D ea_cdata Electronic Arts cdata DE eac3 raw E-AC-3 DE f32be PCM 32 bit floating-point big-endian format DE f32le PCM 32 bit floating-point little-endian format DE f64be PCM 64 bit floating-point big-endian format DE f64le PCM 64 bit floating-point little-endian format DE ffm FFM (FFserver live feed) 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 E gif GIF Animation D gsm raw GSM DE gxf GXF format DE h261 raw H.261 DE h263 raw H.263 DE h264 raw H.264 video format D idcin id Cinematic format DE image2 image2 sequence DE image2pipe piped image2 sequence D ingenient raw Ingenient MJPEG D ipmovie Interplay MVE format E ipod iPod H.264 MP4 format DE libnut nut format D lmlm4 lmlm4 raw format DE m4v raw MPEG-4 video format DE matroska Matroska file format DE mjpeg raw MJPEG video DE mlp raw MLP D mm American Laser Games MM format DE mmf Yamaha SMAF E mov MOV format D mov,mp4,m4a,3gp,3g2,mj2 QuickTime/MPEG-4/Motion JPEG 2000 format E mp2 MPEG audio layer 2 DE mp3 MPEG audio layer 3 E mp4 MP4 format D mpc Musepack D mpc8 Musepack SV8 DE mpeg MPEG-1 System format E mpeg1video raw MPEG-1 video E mpeg2video raw MPEG-2 video DE mpegts MPEG-2 transport stream format D mpegtsraw MPEG-2 raw transport stream format D mpegvideo raw MPEG video E mpjpeg MIME multipart JPEG format D msnwctcp MSN TCP Webcam stream DE mulaw PCM mu-law format D mvi Motion Pixels MVI format DE mxf Material eXchange Format E mxf_d10 Material eXchange Format, D-10 Mapping D nc NC camera feed format D nsv Nullsoft Streaming Video E null raw null video format DE nut NUT format D nuv NuppelVideo format DE ogg Ogg D oma Sony OpenMG audio E psp PSP MP4 format D psxstr Sony Playstation STR format D pva TechnoTrend PVA file and stream format D qcp QCP format D r3d REDCODE R3D format DE rawvideo raw video format E rcv VC-1 test bitstream D redir Redirector format D rl2 RL2 format DE rm RealMedia format D rpl RPL/ARMovie 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 s24be PCM signed 24 bit big-endian format DE s24le PCM signed 24 bit little-endian format DE s32be PCM signed 32 bit big-endian format DE s32le PCM signed 32 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 DE sox SoX native format E spdif IEC958 - S/PDIF (IEC-61937) E svcd MPEG-2 PS format (VOB) DE swf Flash format D thp THP D tiertexseq Tiertex Limited SEQ format D tmv 8088flex TMV DE truehd raw TrueHD D tta True Audio D txd Renderware TeXture Dictionary DE u16be PCM unsigned 16 bit big-endian format DE u16le PCM unsigned 16 bit little-endian format DE u24be PCM unsigned 24 bit big-endian format DE u24le PCM unsigned 24 bit little-endian format DE u32be PCM unsigned 32 bit big-endian format DE u32le PCM unsigned 32 bit little-endian format DE u8 PCM unsigned 8 bit format D vc1 raw VC-1 D vc1test VC-1 test bitstream format E vcd MPEG-1 System format (VCD) D vmd Sierra VMD format E vob MPEG-2 PS format (VOB) DE voc Creative Voice file format D vqf Nippon Telegraph and Telephone Corporation (NTT) TwinVQ D w64 Sony Wave64 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 D xa Maxis XA File Format DE yuv4mpegpipe YUV4MPEG pipe format上のやり方で作ったときの対応コーディック
Codecs: D..... = Decoding supported .E.... = Encoding supported ..V... = Video codec ..A... = Audio codec ..S... = Subtitle codec ...S.. = Supports draw_horiz_band ....D. = Supports direct rendering method 1 .....T = Supports weird frame truncation ------ D V D 4xm 4X Movie D V D 8bps QuickTime 8BPS video D A 8svx_exp 8SVX exponential D A 8svx_fib 8SVX fibonacci D V D FRWU Forward Uncompressed EA aac Advanced Audio Coding D V D aasc Autodesk RLE DEA ac3 ATSC A/52A (AC-3) D A adpcm_4xm ADPCM 4X Movie DEA adpcm_adx SEGA CRI ADX ADPCM D A adpcm_ct ADPCM Creative Technology D A adpcm_ea ADPCM Electronic Arts D A adpcm_ea_maxis_xa ADPCM Electronic Arts Maxis CDROM XA D A adpcm_ea_r1 ADPCM Electronic Arts R1 D A adpcm_ea_r2 ADPCM Electronic Arts R2 D A adpcm_ea_r3 ADPCM Electronic Arts R3 D A adpcm_ea_xas ADPCM Electronic Arts XAS D A adpcm_ima_amv ADPCM IMA AMV D A adpcm_ima_dk3 ADPCM IMA Duck DK3 D A adpcm_ima_dk4 ADPCM IMA Duck DK4 D A adpcm_ima_ea_eacs ADPCM IMA Electronic Arts EACS D A adpcm_ima_ea_sead ADPCM IMA Electronic Arts SEAD D A adpcm_ima_iss ADPCM IMA Funcom ISS DEA adpcm_ima_qt ADPCM IMA QuickTime D A adpcm_ima_smjpeg ADPCM IMA Loki SDL MJPEG DEA adpcm_ima_wav ADPCM IMA WAV D A adpcm_ima_ws ADPCM IMA Westwood DEA adpcm_ms ADPCM Microsoft D A adpcm_sbpro_2 ADPCM Sound Blaster Pro 2-bit D A adpcm_sbpro_3 ADPCM Sound Blaster Pro 2.6-bit D A adpcm_sbpro_4 ADPCM Sound Blaster Pro 4-bit DEA adpcm_swf ADPCM Shockwave Flash D A adpcm_thp ADPCM Nintendo Gamecube THP D A adpcm_xa ADPCM CDROM XA DEA adpcm_yamaha ADPCM Yamaha DEA alac ALAC (Apple Lossless Audio Codec) D V D amv AMV Video D A ape Monkey's Audio DEV D asv1 ASUS V1 DEV D asv2 ASUS V2 D A atrac1 Atrac 1 (Adaptive TRansform Acoustic Coding) D A atrac3 Atrac 3 (Adaptive TRansform Acoustic Coding 3) D V D avs AVS (Audio Video Standard) video D V D bethsoftvid Bethesda VID video D V D bfi Brute Force & Ignorance DEV D bmp BMP image D V D c93 Interplay C93 D V D camstudio CamStudio D V D camtasia TechSmith Screen Capture Codec D V D cavs Chinese AVS video (AVS1-P2, JiZhun profile) D V D cinepak Cinepak D V D cljr Cirrus Logic AccuPak D A cook COOK D V D cyuv Creative YUV (CYUV) D A dca DCA (DTS Coherent Acoustics) DEV D dnxhd VC3/DNxHD D V dpx DPX image D A dsicinaudio Delphine Software International CIN audio D V D dsicinvideo Delphine Software International CIN video DES dvbsub DVB subtitles DES dvdsub DVD subtitles DEV D dvvideo DV (Digital Video) D V D dxa Feeble Files/ScummVM DXA D A eac3 ATSC A/52B (AC-3, E-AC-3) D V D eacmv Electronic Arts CMV video D V D eamad Electronic Arts Madcow Video D V D eatgq Electronic Arts TGQ video D V eatgv Electronic Arts TGV video D V D eatqi Electronic Arts TQI Video D V D escape124 Escape 124 DEV D ffv1 FFmpeg video codec #1 DEVSD ffvhuff Huffyuv FFmpeg variant DEA flac FLAC (Free Lossless Audio Codec) DEV D flashsv Flash Screen Video D V D flic Autodesk Animator Flic video DEVSD flv Flash Video (FLV) D V D fraps Fraps DEA g726 G.726 ADPCM DEV D gif GIF (Graphics Interchange Format) DEV D h261 H.261 DEVSDT h263 H.263 / H.263-1996 D VSD h263i Intel H.263 EV h263p H.263+ / H.263-1998 / H.263 version 2 D V D h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 DEVSD huffyuv Huffyuv / HuffYUV D V D idcinvideo id Quake II CIN video D A imc IMC (Intel Music Coder) D V D indeo2 Intel Indeo 2 D V D indeo3 Intel Indeo 3 D A interplay_dpcm DPCM Interplay D V D interplayvideo Interplay MVE video DEV D jpegls JPEG-LS D V D kmvc Karl Morton's video codec DEV libdirac libdirac Dirac 2.2 EA libfaac libfaac AAC (Advanced Audio Codec) D A libfaad libfaad AAC (Advanced Audio Codec) DEA libgsm libgsm GSM DEA libgsm_ms libgsm GSM Microsoft variant EA libmp3lame libmp3lame MP3 (MPEG audio layer 3) DEA libopencore_amrnb OpenCORE Adaptive Multi-Rate (AMR) Narrow-Band D A libopencore_amrwb OpenCORE Adaptive Multi-Rate (AMR) Wide-Band D V D libopenjpeg OpenJPEG based JPEG 2000 decoder D A libspeex libspeex Speex EV libtheora libtheora Theora EA libvorbis libvorbis Vorbis EV libx264 libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 EV libxvid libxvidcore MPEG-4 part 2 EV ljpeg Lossless JPEG D V D loco LOCO D A mace3 MACE (Macintosh Audio Compression/Expansion) 3:1 D A mace6 MACE (Macintosh Audio Compression/Expansion) 6:1 D V D mdec Sony PlayStation MDEC (Motion DECoder) D V D mimic Mimic DEV D mjpeg MJPEG (Motion JPEG) D V D mjpegb Apple MJPEG-B D A mlp MLP (Meridian Lossless Packing) D V D mmvideo American Laser Games MM Video D V D motionpixels Motion Pixels video D A mp1 MP1 (MPEG audio layer 1) DEA mp2 MP2 (MPEG audio layer 2) D A mp3 MP3 (MPEG audio layer 3) D A mp3adu ADU (Application Data Unit) MP3 (MPEG audio layer 3) D A mp3on4 MP3onMP4 D A mpc7 Musepack SV7 D A mpc8 Musepack SV8 DEVSDT mpeg1video MPEG-1 video DEVSDT mpeg2video MPEG-2 video DEVSDT mpeg4 MPEG-4 part 2 D VSDT mpegvideo MPEG-1 video D VSDT mpegvideo_xvmc MPEG-1/2 video XvMC (X-Video Motion Compensation) DEVSD msmpeg4 MPEG-4 part 2 Microsoft variant version 3 DEVSD msmpeg4v1 MPEG-4 part 2 Microsoft variant version 1 DEVSD msmpeg4v2 MPEG-4 part 2 Microsoft variant version 2 D V D msrle Microsoft RLE D V D msvideo1 Microsoft Video 1 D V D mszh LCL (LossLess Codec Library) MSZH DEA nellymoser Nellymoser Asao D V D nuv NuppelVideo/RTJPEG DEV D pam PAM (Portable AnyMap) image DEV D pbm PBM (Portable BitMap) image DEA pcm_alaw PCM A-law D A pcm_bluray PCM signed 16|20|24-bit big-endian for Blu-ray media D A pcm_dvd PCM signed 20|24-bit big-endian DEA pcm_f32be PCM 32-bit floating point big-endian DEA pcm_f32le PCM 32-bit floating point little-endian DEA pcm_f64be PCM 64-bit floating point big-endian DEA pcm_f64le PCM 64-bit floating point little-endian DEA pcm_mulaw PCM mu-law DEA pcm_s16be PCM signed 16-bit big-endian DEA pcm_s16le PCM signed 16-bit little-endian D A pcm_s16le_planar PCM 16-bit little-endian planar DEA pcm_s24be PCM signed 24-bit big-endian DEA pcm_s24daud PCM D-Cinema audio signed 24-bit DEA pcm_s24le PCM signed 24-bit little-endian DEA pcm_s32be PCM signed 32-bit big-endian DEA pcm_s32le PCM signed 32-bit little-endian DEA pcm_s8 PCM signed 8-bit DEA pcm_u16be PCM unsigned 16-bit big-endian DEA pcm_u16le PCM unsigned 16-bit little-endian DEA pcm_u24be PCM unsigned 24-bit big-endian DEA pcm_u24le PCM unsigned 24-bit little-endian DEA pcm_u32be PCM unsigned 32-bit big-endian DEA pcm_u32le PCM unsigned 32-bit little-endian DEA pcm_u8 PCM unsigned 8-bit DEA pcm_zork PCM Zork DEV D pcx PC Paintbrush PCX image DEV D pgm PGM (Portable GrayMap) image DEV D pgmyuv PGMYUV (Portable GrayMap YUV) image D S pgssub HDMV Presentation Graphic Stream subtitles DEV D png PNG image DEV D ppm PPM (Portable PixelMap) image D V D ptx V.Flash PTX image D A qcelp QCELP / PureVoice D A qdm2 QDesign Music Codec 2 D V D qdraw Apple QuickDraw D V D qpeg Q-team QPEG DEV D qtrle QuickTime Animation (RLE) video DEV rawvideo raw video D A real_144 RealAudio 1.0 (14.4K) D A real_288 RealAudio 2.0 (28.8K) D V D rl2 RL2 video DEA roq_dpcm id RoQ DPCM DEV D roqvideo id RoQ video D V D rpza QuickTime video (RPZA) DEV D rv10 RealVideo 1.0 DEV D rv20 RealVideo 2.0 D V D rv30 RealVideo 3.0 D V D rv40 RealVideo 4.0 DEV sgi SGI image D A shorten Shorten D A smackaud Smacker audio D V D smackvid Smacker video D V D smc QuickTime Graphics (SMC) DEV D snow Snow D A sol_dpcm DPCM Sol DEA sonic Sonic EA sonicls Sonic lossless D V D sp5x Sunplus JPEG (SP5X) D V D sunrast Sun Rasterfile image DEV D svq1 Sorenson Vector Quantizer 1 D VSD svq3 Sorenson Vector Quantizer 3 DEV D targa Truevision Targa image D V D theora Theora D V D thp Nintendo Gamecube THP video D V D tiertexseqvideo Tiertex Limited SEQ video DEV D tiff TIFF image D V D tmv 8088flex TMV D A truehd TrueHD D V D truemotion1 Duck TrueMotion 1.0 D V D truemotion2 Duck TrueMotion 2.0 D A truespeech DSP Group TrueSpeech D A tta True Audio (TTA) D A twinvq VQF TwinVQ D V D txd Renderware TXD (TeXture Dictionary) image D V D ultimotion IBM UltiMotion DEV D v210 Uncompressed 4:2:2 10-bit D V D v210x D V vb Beam Software VB D V D vc1 SMPTE VC-1 D V D vcr1 ATI VCR1 D A vmdaudio Sierra VMD audio D V D vmdvideo Sierra VMD video D V D vmnc VMware Screen Codec / VMware Video DEA vorbis Vorbis D V D vp3 On2 VP3 D V D vp5 On2 VP5 D V D vp6 On2 VP6 D V D vp6a On2 VP6 (Flash version, with alpha channel) D V D vp6f On2 VP6 (Flash version) D V D vqavideo Westwood Studios VQA (Vector Quantized Animation) video D A wavpack WavPack D A wmapro Windows Media Audio 9 Professional DEA wmav1 Windows Media Audio 1 DEA wmav2 Windows Media Audio 2 DEVSD wmv1 Windows Media Video 7 DEVSD wmv2 Windows Media Video 8 D V D wmv3 Windows Media Video 9 D V D wnv1 Winnov WNV1 D A ws_snd1 Westwood Audio (SND1) D A xan_dpcm DPCM Xan D V D xan_wc3 Wing Commander III / Xan D V D xl Miro VideoXL DES xsub DivX subtitles (XSUB) DEV D zlib LCL (LossLess Codec Library) ZLIB DEV D zmbv Zip Motion Blocks Video Bitstream filters: text2movsub remove_extra noise mov2textsub mp3decomp mp3comp mjpegadump imxdump h264_mp4toannexb dump_extra aac_adtstoasc Supported file protocols: file: gopher: http: pipe: rtmp: 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.
参考文献
[よくわからない現代魔法][UNIX/Linux] ffmpegをコンパイル [rev 19235][お気に入りの動画を携帯で見よう]Xvidのコンパイル&インストール (1.2.1以降)
[Doom9's forum]VAQ: Making Xvid's Adaptive Quantization Not Suck
[Craving Explorer Wiki]同梱ffmpegのlameエンコードの不具合
PR
トラックバック
URL :
コメント