FC2ブログ
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- / Top↑
ffmpegのインストールです。
CentOSでは安心のyumインストールです。しかし、お決まりの古いバージョンなのですが、まぁ、最新な究極の使い方をしなければ、私のようにMP3変換程度の使い方では全く問題ありません。

当記事は2014年11月に私のPCを旧機種から新ハード&新OS(CentOS6.6)に移行した際の付随する作業の一つです。CentOS6.6(64bit)へのバージョンアップ対応になります。

(お断り)
・以降の全てのGNOME端末メッセージではブログ表示の都合上、
 横幅を詰めて表示している箇所があります。
 (ブランクが詰まって表示される箇所もあるかも)
・以降に掲載の/home/k/は私のPC環境でのホームフォルダです。
・以下のコマンドでの #マークは事前にrootでログインしておく必要があります。
 (suあるいはsudoコマンド)

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
ffmpeg
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
オーディオ系のデータを扱う時には(目に見えない範囲でも)恐らくお世話になる確立の高いツールです。GUI化されたプログラム等を通して使う機会もあるかと思いますが、単体でも使え多機能なツールです。

■■■■■■■■■■■■■■■■■■■■■
サイト/情報
■■■■■■■■■■■■■■■■■■■■■
ffmpeg本家サイト
ffmpegの最新版は FFmpeg 2.5.2 のようです。

ドキュメントはココ↓詳細な資料なのですが、全て英文です。
ffmpeg Documentation

FFmpeg(wiki)日本語

■■■■■■■■■■■■■■■■■■■■■
サポートしているファイル形式(wikiより抜粋)
■■■■■■■■■■■■■■■■■■■■■
この全てがそのまま使える訳ではないのでしょうけれど、沢山有り過ぎて、たぶん一生お世話にならない形式も多いかと思います。(^^;) エンコードするには形式によってはライブラリが必要なのでしょうか?(全て迄は未検証です、また、以下の一覧は最新版の範囲かと思います)

3GPP AMR
4xm
8088flex TMV
Adobe Filmstrip
American Laser Games MM
Apple HTTP Live Streaming
ASF
Audio IFF (AIFF)
AVI
AVISynth
AVS
Beam Software SIFF
Bethesda Softworks VID
Bink
Bitmap Brothers JV
Brute Force & Ignorance
BWF
CD+G
Core Audio Format
CRC testing format
Creative Voice
CRYO APC
D-Cinema audio
Delphine Software International CIN
Deluxe Paint Animation
DFA
DV video
DXA
Electronic Arts cdata
Electronic Arts Multimedia
FFM (FFserver live feed)
FFmpeg metadata
Flash (SWF)
Flash 9 (AVM2)
Flash Video (FLV)
FLI/FLC/FLX animation
framecrc testing format
FunCom ISS
GIF アニメーション
GXF
id Quake II CIN video
id RoQ
IEC61937 encapsulation
IFF
Interplay C93
Interplay MVE
IV8
IVF (On2)
Lego Mindstorms RSO
LMLM4
LOAS
LXF
Material eXchange Format (MXF)
Material eXchange Format (MXF), D-10 Mapping
Matroska
Matroska audio
MAXIS XA
MD Studio
MIME マルチパート JPEG
Mobotix .mxg
Monkey's Audio
Motion Pixels MVI
MOV/QuickTime/MP4
MP2
MP3
MPEG-1 System
MPEG-4
MPEG-PS (program stream)
MPEG-TS (transport stream)
MSN TCP webcam
MTV
Musepack
Musepack SV8
NC camera feed
NTT TwinVQ (VQF)
Nullsoft Streaming Video
NuppelVideo
NUT
Ogg
Playstation Portable PMP
Psygnosis YOP
QCP
raw AC-3
raw ADTS (AAC)
raw Chinese AVS video
raw CRI ADX
raw Dirac
raw DNxHD
raw DTS
raw E-AC-3
raw FLAC
raw GSM
raw H.261
raw H.263
raw H.264
raw id RoQ
raw Ingenient MJPEG
raw MJPEG
raw MLP
raw MPEG
raw MPEG-1
raw MPEG-2
raw MPEG-4
raw NULL
raw PCM
raw PCM A-law
raw PCM mu-law
raw Shorten
raw TrueHD
raw VC-1
raw video
RDT
RealMedia
REDCODE R3D
Redirector
Renderware TeXture Dictionary
RL2
RPL/ARMovie
RTMP
RTP
RTSP
SAP
SDP
Sega FILM/CPK
Sierra SOL
Sierra VMD
Smacker
Sony OpenMG (OMA)
Sony PlayStation STR
Sony Wave64 (W64)
SoX native format
SUN AU format
TechnoTrend PVA
THP
Tiertex Limited SEQ
True Audio
VC-1 test bitstream
WAV
WavPack
WebM
Westwood Studios audio
Westwood Studios VQA
Windows Televison (WTV)
Wing Commander III movie
XMV
xWMA
YUV4MPEG pipe
テキストファイル


■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
インストール
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
公式サイトから入手できる最新版はtarballからのソース版しかないようです。私も一時期tarball版に足を突っ込んだものですが、地獄的な依存性エラースパイラルに悩まされてからは、最近では安心鉄板電車道なyum様にお世話になる事が多くなりました…。(^^;)

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
インストール(バイナリの場合)
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
公式サイトではコンパイル済みのバイナリは配布されていないようです。但し、バージョンを気にしなければ以下のコマンドでインストールは可能です。

■■■■■■■■■■■■■■■■■■■■■
お断り・前提環境
■■■■■■■■■■■■■■■■■■■■■
◆リポジトリ追加
 私の環境はCentOS6.6(64bit)インストール時点で以下のリポジトリ追加を行っています。
 EPEL,Remi,RPMforgeのリポジトリ追加

<参考>EPEL、Remi、RPMforgeのリポジトリ追加(64bit)
$ su パスワード:
# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
# rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
インストール確認
# rpm -qa | grep epel-releas
epel-release-6-8.noarch
# rpm -qa | grep remi-release
remi-release-6.5-1.el6.remi.noarch
# rpm -qa | grep rpmforge-release
rpmforge-release-0.5.3-1.el6.rf.x86_64

■■■■■■■■■■■■■■■■■■■■■
事前確認
■■■■■■■■■■■■■■■■■■■■■
$ yum info ffmpeg
読み込んだプラグイン:fastestmirror, priorities, refresh-packagekit, security
Determining fastest mirrors
* base: www.ftp.ne.jp
* epel: mirror01.idc.hinet.net
* extras: www.ftp.ne.jp
* rpmforge: mirrors.digipower.vn
* updates: www.ftp.ne.jp
利用可能なパッケージ
名前      : ffmpeg
アーキテクチャ : x86_64
バージョン   : 0.6.5
リリース    : 1.el6.rf
容量      : 2.7 M
リポジトリー  : rpmforge
要約      : Utilities and libraries to record, convert and stream audio and video
URL       : http://ffmpeg.org/
ライセンス  : GPL
説明      : FFmpeg is a very fast video and audio converter. It can also grab from a
        : live audio/video source.
        : The command line interface is designed to be intuitive, in the sense that
        : ffmpeg tries to figure out all the parameters, when possible. You have
        : usually to give only the target bitrate you want. FFmpeg can also convert
        : from any sample rate to any other, and resize video on the fly with a high
        : quality polyphase filter.
        :
        : Available rpmbuild rebuild options :
        : --without : lame vorbis theora faad faac gsm xvid x264 a52dec altivec

■■■■■■■■■■■■■■■■■■■■■
インストール
■■■■■■■■■■■■■■■■■■■■■
yum処理途中にはインストール最終確認の為の「y」入力があります。(インストールを止める場合は「n」を入力)

$ su
パスワード:
# yum install ffmpeg
読み込んだプラグイン:fastestmirror, priorities, refresh-packagekit, security
インストール処理の設定をしています
Determining fastest mirrors
* base: www.ftp.ne.jp
* epel: mirror01.idc.hinet.net
* extras: www.ftp.ne.jp
* rpmforge: mirrors.digipower.vn
* updates: www.ftp.ne.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> Package ffmpeg.x86_64 0:0.6.5-1.el6.rf will be インストール
--> 依存性の処理をしています: libpostproc.so.51(LIBPOSTPROC_51)(64bit) のパッケージ: ffmpeg-0.6.5-1.el6.rf.x86_64
--> 依存性の処理をしています: libdc1394.so.22()(64bit) のパッケージ: ffmpeg-0.6.5-1.el6.rf.x86_64
--> 依存性の処理をしています: libva.so.1()(64bit) のパッケージ: ffmpeg-0.6.5-1.el6.rf.x86_64
--> 依存性の処理をしています: libpostproc.so.51()(64bit) のパッケージ: ffmpeg-0.6.5-1.el6.rf.x86_64
--> トランザクションの確認を実行しています。
---> Package ffmpeg-libpostproc.x86_64 0:0.6.5-1.el6.rf will be インストール
---> Package libdc1394.x86_64 0:2.1.2-3.4.el6 will be インストール
---> Package libva.x86_64 0:1.0.15-1.el6 will be インストール
--> 依存性解決を終了しました。

依存性を解決しました

===================================================
パッケージ             アーキテクチャ バージョン    リポジトリー 容量
===================================================
インストールしています:
ffmpeg                x86_64   0.6.5-1.el6.rf  rpmforge  2.7 M
依存性関連でのインストールをします。:
ffmpeg-libpostproc          x86_64  0.6.5-1.el6.rf  rpmforge   24 k
libdc1394               x86_64  2.1.2-3.4.el6   base    117 k
libva                 x86_64  1.0.15-1.el6    epel    53 k

トランザクションの要約
===================================================
インストール    4 パッケージ

総ダウンロード容量: 2.9 M
インストール済み容量: 7.5 M
これでいいですか? [y/N]y            <----ここで y を入力
パッケージをダウンロードしています:
(1/4): ffmpeg-0.6.5-1.el6.rf.x86_64.rpm         | 2.7 MB 00:02
(2/4): ffmpeg-libpostproc-0.6.5-1.el6.rf.x86_64.rpm  | 24 kB 00:00
(3/4): libdc1394-2.1.2-3.4.el6.x86_64.rpm        | 117 kB 00:00
(4/4): libva-1.0.15-1.el6.x86_64.rpm           | 53 kB 00:00
----------------------------------------------------
合計                      823 kB/s | 2.9 MB   00:03
rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
 インストールしています : libdc1394-2.1.2-3.4.el6.x86_64         1/4
 インストールしています : libva-1.0.15-1.el6.x86_64            2/4
 インストールしています : ffmpeg-0.6.5-1.el6.rf.x86_64          3/4
 インストールしています : ffmpeg-libpostproc-0.6.5-1.el6.rf.x86_64    4/4
 Verifying        : ffmpeg-libpostproc-0.6.5-1.el6.rf.x86_64   1/4
 Verifying        : libva-1.0.15-1.el6.x86_64           2/4
 Verifying        : libdc1394-2.1.2-3.4.el6.x86_64        3/4
 Verifying        : ffmpeg-0.6.5-1.el6.rf.x86_64         4/4

インストール:
 ffmpeg.x86_64 0:0.6.5-1.el6.rf

依存性関連をインストールしました:
 ffmpeg-libpostproc.x86_64 0:0.6.5-1.el6.rf  libdc1394.x86_64 0:2.1.2-3.4.el6  libva.x86_64 0:1.0.15-1.el6

完了しました!
#

■■■■■■■■■■■■■■■■■■■■■
確認
■■■■■■■■■■■■■■■■■■■■■
# which ffmpeg
/usr/bin/ffmpeg
# ffmpeg -version
FFmpeg version 0.6.5, Copyright (c) 2000-2010 the FFmpeg developers
built on Jan 29 2012 17:52:15 with gcc 4.4.5 20110214 (Red Hat 4.4.5-6)
configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --incdir=/usr/include --disable-avisynth --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' --enable-avfilter --enable-avfilter-lavf --enable-libdc1394 --enable-libdirac --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared --enable-swscale --enable-vdpau --enable-version3 --enable-x11grab
 libavutil   50.15. 1 / 50.15. 1
 libavcodec   52.72. 2 / 52.72. 2
 libavformat   52.64. 2 / 52.64. 2
 libavdevice   52. 2. 0 / 52. 2. 0
 libavfilter   1.19. 0 / 1.19. 0
 libswscale   0.11. 0 / 0.11. 0
 libpostproc  51. 2. 0 / 51. 2. 0
FFmpeg 0.6.5
libavutil   50.15. 1 / 50.15. 1
libavcodec  52.72. 2 / 52.72. 2
libavformat  52.64. 2 / 52.64. 2
libavdevice  52. 2. 0 / 52. 2. 0
libavfilter  1.19. 0 / 1.19. 0
libswscale  0.11. 0 / 0.11. 0
libpostproc  51. 2. 0 / 51. 2. 0
# rpm -q ffmpeg
ffmpeg-0.6.5-1.el6.rf.x86_64

CentOS 6.6(CPU:64bit)の場合では、FFmpeg version 0.6.5 となります。(古い…)


■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
使用テスト
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
MP3Encodeだけですが、コマンドはこんな↓感じ。

■MP3変換コマンド パラメタ形式
ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

■mp4からmp3を抽出する場合
ffmpeg -i 変換するファイル名.mp4 -acodec libmp3lame 変換するファイル名.mp3
■flvからmp3を抽出する場合
ffmpeg -i 変換するファイル名.flv -acodec copy 変換するファイル名.mp3
■音量増幅(音を大きくする)
-volオプションで指定(標準は確か?256)
ffmpeg -i 変換するファイル名.flv -acodec libmp3lame -ab 256 -ar 44100 -vol 1536 変換するファイル名.mp3
■ビットレートを指定
-abオプションで指定(元のビットレートは入力ソースによるので無闇に上げても効果なしの場合あり)
ffmpeg -i /home/k/music/変換するファイル名.flv -acodec libmp3lame -ab 192k /home/k/music/After/変換するファイル名.mp3
ffmpeg -i /home/k/music/変換するファイル名.mp4 -acodec libmp3lame -ab 192k /home/k/music/After/変換するファイル名.mp3

----------------------------------------------------
テストエンコード
----------------------------------------------------
$ cd /home/k/temp
$ ffmpeg -i test.flv -acodec copy test.mp3
FFmpeg version 0.6.5, Copyright (c) 2000-2010 the FFmpeg developers
 built on Jan 29 2012 17:52:15 with gcc 4.4.5 20110214 (Red Hat 4.4.5-6)
 configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --incdir=/usr/include --disable-avisynth --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' --enable-avfilter --enable-avfilter-lavf --enable-libdc1394 --enable-libdirac --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared --enable-swscale --enable-vdpau --enable-version3 --enable-x11grab
 libavutil   50.15. 1 / 50.15. 1
 libavcodec   52.72. 2 / 52.72. 2
 libavformat  52.64. 2 / 52.64. 2
 libavdevice  52. 2. 0 / 52. 2. 0
 libavfilter  1.19. 0 / 1.19. 0
 libswscale   0.11. 0 / 0.11. 0
 libpostproc  51. 2. 0 / 51. 2. 0
[flv @ 0x239f670]Estimating duration from bitrate, this may be inaccurate

Seems stream 0 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 29.97 (30000/1001)
Input #0, flv, from 'test.flv':
 Metadata:
  duration    : 330
  starttime    : 0
  totalduration  : 330
  width      : 426
  height      : 240
  videodatarate  : 301
  audiodatarate  : 64
  totaldatarate  : 373
  framerate    : 30
  bytelength   : 15408825
  canseekontime  : true
  sourcedata    : CscHH1418222727834132
  purl       :
  pmsg       :
 Duration: 00:05:30.33, start: 0.000000, bitrate: 371 kb/s
  Stream #0.0: Video: flv, yuv420p, 426x240, 307 kb/s, 29.97 tbr, 1k tbn, 1k tbc
  Stream #0.1: Audio: mp3, 22050 Hz, 2 channels, s16, 64 kb/s
Output #0, mp3, to 'test.mp3':
 Metadata:
  TSSE : Lavf52.64.2
  Stream #0.0: Audio: libmp3lame, 22050 Hz, 2 channels, 64 kb/s
Stream mapping:
 Stream #0.1 -> #0.0
Press [q] to stop encoding
size= 2582kB time=330.45 bitrate= 64.0kbits/s
video:0kB audio:2582kB global headers:0kB muxing overhead 0.001248%
$

エンコードした結果を聴いて終了です。このコマンドでは原音ソースの情報を引き継いでMp3データが作られます。私は簡単な使い方しか行っていませんが、ffmpegのヘルプを出してみると、これでもか!と言うくらいにパラメタがあるのが分かります。ffmpegでは様々なコントロールが出きるようなので使い方を深めてみるのも面白いかと思います。(^^)


■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
さいごに
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■ffmpegは私が新環境(CentOS6.6)になってからインストールして様子を見ながら使用していました。しかし、この記事をアップするために今回再度確認していたら、何故か消えていました…?

$ rpm -q ffmpeg
パッケージ ffmpeg はインストールされていません。
と、なっていました。

全く???な謎なんですが、何故?と考えても自分ではアンインストールしていませんし原因がハッキリしないのです。私が新環境(CentOS6.6)になってからカーネルの2回の更新を含んだ「自動更新」を複数回行っています。その中で勝手に抜かれてしまったのか?(たぶん可能性は低いと思いますが)、他にオーディオ系のアドオンも行っているので、そちらの方が原因なのかも?とも思えています。しかし、まだボケ?てはいないはずですが(^^;)何だかモヤモヤが晴れない感じです。


■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
当作業の実行環境
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
◆オペレーティングシステム:CentOS release 6.6(Final)(64bit)
 Kernel Version  :2.6.32-504.1.3.el6.x86_64
 GNOMEバージョン  :2.28.2
◆FFmpeg version 0.6.5

--- 以上 ---
2014.12.30 / Top↑
Secret(管理者にだけ表示を許可する)


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。