|
|
|
Linux ffmpeg |
会員登録(SSL) 会員専用(SSL) |
|
ffmpegの使用方法に関して 変換するべきファイルの形式を調べる FFmpeg version SVN-r22990 (Fedora 13) を使用。また、内容に関しては以前からの継ぎ足しによる更新になっているのでは、古い内容の部分も存在しているものと思う。
$ ffmpeg -i sample.mpg ( -i input_file のoption )
FFmpeg version SVN-r22990, Copyright (c) 2000-2010 the FFmpeg developers
built on Apr 30 2010 04:58:37 with gcc 4.4.3 20100422 (Red Hat 4.4.3-18)
configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg \
--incdir=/usr/include/ffmpeg --libdir=/usr/lib --mandir=/usr/share/man \
--arch=i686 --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 \
-fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 \
-mtune=atom -fasynchronous-unwind-tables' --extra-version=rpmfusion \
--enable-bzlib --enable-libdc1394 --enable-libdirac --enable-libfaad \
--enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libschroedinger \
--enable-libspeex --enable-libtheora --enable-libvorbis --enable-libx264
--enable-libxvid --enable-x11grab --enable-avfilter --enable-avfilter-lavf \
--enable-postproc --enable-pthreads --disable-static --enable-shared \
--enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib \
--cpu=i686 --enable-runtime-cpudetect
ここで、
Input #0, mpeg, from 'sample.mpg':に注目すると、
Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 704x480, 9351 kb/s, 29.97 fps(r)
mpeg2video.....codec
yuv420p.....raw videoを抽出し、組み替える。
704x480.....size
9351 kb/s.....-b bitrate { Set the video bitrate in bit/s (default = 200 kb/s).}
29.97.....-r fps { Set frame rate (Hz value, fraction or abbreviation), (default = 25).}
もっとも簡単便利な方法
$ ffmpeg -i sample.mpg -s 320x240 little_sample.mpg
Input #0, mpeg, from 'sample.mpg':
Duration: 00:01:02.0, start: 0.257867, bitrate: 7451 kb/s
Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 704x480, 9351 kb/s, 29.97 fps(r)
Stream #0.1[0x80]: Audio: ac3, 48000 Hz, stereo, 256 kb/s
Output #0, mpeg, to 'little_sample.mpg':
Stream #0.0: Video: mpeg1video, yuv420p, 320x240, q=2-31, 200 kb/s, 29.97 fps(c)
Stream #0.1: Audio: mp2, 48000 Hz, stereo, 64 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
Press [q] to stop encoding
frame= 1861 fps=133 q=6.5 Lsize= 2250kB time=62.1 bitrate= 297.0kbits/s
video:1738kB audio:485kB global headers:0kB muxing overhead 1.188526%
$
Video部分が
Input#0のStream #0.0が Output #0のStream #0.0でmpeg2videoからmpeg1videoへと変換され、
サイズが704x480から320x240へと変換されている。
また、Audioが
Input#0のStream #0.1が Output #0のStream #0.1でAudio: ac3, 48000 Hz, stereo, 256 kb/sから
Audio: mp2, 48000 Hz, stereo, 64 kb/sへと変換されている。
以降、optionを変更させた時のOutput時の結果のみを表示させる。そして、変更させたファイルが
ご使用の動画プレーヤーの形式に対応しているかは、そのプレーヤーの特性による。
もっとも簡単便利なOptin -target $ ffmpeg -i sample.mpg -target ntsc-vcd little_sample.mpg ------ 省略 ----- Output #0, vcd, to 'little_sample.mpg': Stream #0.0: Video: mpeg1video, yuv420p, 352x240, q=2-31, 1150 kb/s, 29.97 fps(c) Stream #0.1: Audio: mp2, 44100 Hz, stereo, 224 kb/s $ ffmpeg -i sample.mpg -target ntsc-svcd little_sample.mpg ------ 省略 ----- Output #0, svcd, to 'little_sample.mpg': Stream #0.0: Video: mpeg2video, yuv420p, 480x480, q=2-31, 2040 kb/s, 29.97 fps(c) Stream #0.1: Audio: mp2, 44100 Hz, stereo, 224 kb/s $ ffmpeg -i sample.mpg -target dvd little_sample.mpg ------ 省略 ----- Output #0, dvd, to 'little_sample.mpg': Stream #0.0: Video: mpeg2video, yuv420p, 720x480, q=2-31, 6000 kb/s, 29.97 fps(c) Stream #0.1: Audio: ac3, 48000 Hz, stereo, 448 kb/s $ ffmpeg -i sample.mpg -target dv little_sample.mpg ------ 省略 ----- Output #0, dv, to 'little_sample.mpg': Stream #0.0: Video: dvvideo, yuv411p, 720x480, q=2-31, 200 kb/s, 29.97 fps(c) Stream #0.1: Audio: pcm_s16le, 48000 Hz, stereo, 1536 kb/s Optionは、 $ man ffmpeg 並びに $ ffmpeg -formats でも表示されるが、一様、最下部に表示している。 以下は個人的な記録
Hitachi(DZ-GX20 -s 704x480 -f mpeg2)で撮影した動画ファイル、並びに、
Olympus(CAMEDIA C-700 Ultra Zoom)による動画ファイルを使用した結果を載せた。
mpeg2-->縮小
$ ffmpeg -i sample.mpg -aspect 4:3 -s 320x240 little_sample.mpg
Output #0, mpeg, to 'little_sample.mpg':
Stream #0.0: Video: mpeg1video, yuv420p, 320x240, q=2-31, 200 kb/s, 29.97 fps(c)
Stream #0.1: Audio: mp2, 48000 Hz, stereo, 64 kb/s
変換されたファイルはwindowsでは問題無かったが、Linux(Java Applet)上では表示されない。
video codecをmjpagにし .movに変換する。
$ ffmpeg -i sample.mpg -vcodec mjpeg -y -aspect 4:3 -s 320x240 little_sample.mov
画像関係は問題なしだが、音が無い。audio codecをpcm_u8へ修正
$ ffmpeg -i sample.mpg -vcodec mjpeg -acodec pcm_u8 -y \
-aspect 4:3 -s 320x240 little_sample.mov
Work Fine! 目的完了!
example 101).....mpeg2video(704x480)-》mpeg2video(340x240)acodec(mp2)
-》mpeg1video(340x240)acodec(mp2)
$ ffmpeg -i sample.mpg
Input #0, mpeg, from 'sample.mpg':
Duration: 00:01:02.0, start: 0.257867, bitrate: 7451 kb/s
Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 704x480, 9351 kb/s, 29.97 fps(r)
Stream #0.1[0x80]: Audio: ac3, 48000 Hz, stereo, 256 kb/s
$ ffmpeg -i sample.mpg -target ntsc-svcd -acodec mp2 -aspect 4:3 -s 340x240 ssa.mpg
$ ffmpeg -i ssa.mpg
Input #0, mpeg, from 'ssa.mpg':
Duration: 00:01:02.0, start: 0.500000, bitrate: 2030 kb/s
Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 340x240, 2516 kb/s, 29.97 fps(r)
Stream #0.1[0x1c0]: Audio: mp2, 44100 Hz, stereo, 224 kb/s
$ ffmpeg -i ssa.mpg -target ntsc-vcd little_ssa.mpg
Input #0, mpeg, from 'little_ssa.mpg':
Duration: 00:01:02.0, start: 0.440000, bitrate: 1391 kb/s
Stream #0.0[0x1e0]: Video: mpeg1video, yuv420p, 352x240, 1150 kb/s, 29.97 fps(r)
Stream #0.1[0x1c0]: Audio: mp2, 44100 Hz, stereo, 224 kb/
example 102).....CHANGE mpeg2video(704x480)
TO mjpeg(320x240)
ffmpeg -i sample.mpg -vcodec mjpeg -acodec pcm_u8 -y -aspect 4:3 -s 320x240 sam.mov
example 103).....CHANGE mpeg2video(704x480) aspec(16:9)
TO mjpeg(320x240) and aspec(4:3)
ffmpeg -i sample.mpg -croptop 50 -cropbottom 50 -aspect 4:3 -s 320x240 little_sample.mpg
example 104).....size(320x240),vcodec(mjpeg), acodex(pcm_u8)
TO size(320x240),vcodec(mpeg1video), acodex(mp2)
最終的に、 $ ffmpeg -i sample.mpg のコマンドで、出力された動画ファイルの内容を確認することをお勧め致します。中には、サイズの書き忘れで、aspec rateを取得出来ずに動画プレーヤーで再生できない動画ファイルも存在しています。 ffmpegのbitrate変更 bitrate変更による、動画ファイルの挙動の実験
|
![]() 動画:アンデス音楽 余計な事かも?しれませんが、Gstreamer-Javaを利用しての動画です。当社で開発中のプログラムを利用しています。 ![]() ワード・表計算の世界標準を目指すオープン・オフィス:無償での提供 |