mkdir ~/src/ cd ~/src/ svn co svn://svn.ffmpeg.org/soc/libavfilter cd libavfilter/ sh checkout.sh cd ffmpeg/libavcodec/ wget http://svn.xiph.org/trunk/ffmpeg2theora/patches/6to2channel-resample.patch patch resample.c < 6to2channel-resample.patch cd ../ mkdir ~/ffmpeg ./configure --prefix=$(realpath ~/ffmpeg) && make && make install
2011-01-26
Resampling with input channels greater than 2 unsupported.
http://hibari.2ch.net/test/read.cgi/software/1270542020/-100
2011-01-25
ffmpegのyuv以外で早送りにする例
yuvのファイルサイズが大きいです。
http://www.google.co.jp/search?num=100&hl=ja&safe=off&biw=1272&bih=776&q=yuv+sox+ffmpeg&btnG=%E6%A4%9C%E7%B4%A2&aq=f&aqi=&aql=&oq=
http://ffmpeg.org/faq.html#SEC23
http://ffmpeg.org/libavfilter.html#SEC34
利用するディスクサイズが少なくなったはずです。果たして本当にそうでしょうか?
soxは100倍まで対応しているようです。
聞き取る場合100倍は無理で2~4倍程度になると思います。
下記の例はperlやexprなどの外部コマンドが必要です。
threadNumを手動で入れる場合で、cpuの利用を最低にしたい場合は1です。
mpeg4のオプションはマニュアルの内容のままです。
実は -vf sox=xxx のようなオプションがあるのかもしれません、が見つかりません。
例えば、&& ffmpeg, && sox となっている部分を、
&& echo ffmpeg, && echo sox と変更すると、コマンドの文字が出力されます。
http://www.google.co.jp/search?num=100&hl=ja&safe=off&biw=1272&bih=776&q=yuv+sox+ffmpeg&btnG=%E6%A4%9C%E7%B4%A2&aq=f&aqi=&aql=&oq=
http://ffmpeg.org/faq.html#SEC23
http://ffmpeg.org/libavfilter.html#SEC34
利用するディスクサイズが少なくなったはずです。果たして本当にそうでしょうか?
soxは100倍まで対応しているようです。
聞き取る場合100倍は無理で2~4倍程度になると思います。
下記の例はperlやexprなどの外部コマンドが必要です。
threadNumを手動で入れる場合で、cpuの利用を最低にしたい場合は1です。
srcFile=./src.mp4 \
&& threadNum=$(expr $(grep ^processor /proc/cpuinfo | wc -l) \* 2 - 1) \
&& frameSize="-s 512x288" \
&& frameRate=60 \
&& diameter=3 \
&& videoBitrate=1600 \
&& ffmpeg -threads ${threadNum} -y -i ${srcFile} \
-mbd 2 -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2 -g 2147483647 \
-vcodec mpeg4 -f mp4 ${frameSize} \
-vf "setpts=$(perl -e "print 1/${diameter}")*PTS" \
-an -r $(perl -e "print int(${diameter}*${frameRate})") \
-b $(perl -e "print ${videoBitrate}*${diameter}")k \
-bt $(perl -e "print ${videoBitrate}*${diameter}*20")k -bufsize 1835k -maxrate 400000k -minrate 0 \
tmp1.mp4 \
&& ffmpeg -threads ${threadNum} -y -i ${srcFile} -vn -aq 100 tmp2.wav \
&& sox tmp2.wav tmp3.wav tempo ${diameter} 30 \
&& ffmpeg -threads ${threadNum} -y -i tmp1.mp4 -i tmp3.wav \
-mbd 2 -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2 -g 2147483647 \
-vcodec mpeg4 -f mp4 ${frameSize} \
-acodec libfaac -aq 80 -async 30 -r ${frameRate} \
-b ${videoBitrate}k -bt $(expr ${videoBitrate} \* 20)k -bufsize 1835k -maxrate 4000k -minrate 0 \
-pass 1 /dev/null \
&& ffmpeg -threads ${threadNum} -y -i tmp1.mp4 -i tmp3.wav \
-mbd 2 -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2 -g 2147483647 \
-vcodec mpeg4 -f mp4 ${frameSize} \
-acodec libfaac -aq 80 -async 30 -r ${frameRate} \
-b ${videoBitrate}k -bt $(expr ${videoBitrate} \* 20)k -bufsize 1835k -maxrate 4000k -minrate 0 \
-pass 2 result.mp4流れは、速い映像を作る => 速い音を作る => 2passエンコードで合成する、です。mpeg4のオプションはマニュアルの内容のままです。
実は -vf sox=xxx のようなオプションがあるのかもしれません、が見つかりません。
例えば、&& ffmpeg, && sox となっている部分を、
&& echo ffmpeg, && echo sox と変更すると、コマンドの文字が出力されます。
2011-01-20
ffmpegのfilterでmovie,overlayが使えない例
追記: 2011-07-11現在、通常のパッケージのffmpegでmovieフィルターは動作します。
http://ffmpeg-users.933282.n4.nabble.com/Overlay-filter-with-new-movie-filter-problem-td3301170.html
http://www.corbellconsulting.com/2010/07/using-ffmpeg-to-add-and-watermark-overlay-on-a-video-2/
http://ffmpeg-users.933282.n4.nabble.com/problem-with-movie-td3069917.html
http://fixedpoint.jp/ffmpeg/ffmpeg.html
http://www.ffmpeg.org/ffmpeg.html
動画に画像を書き込む場合に使うようですが使えません。
http://ffmpeg-users.933282.n4.nabble.com/Overlay-filter-with-new-movie-filter-problem-td3301170.html
$ eix -e media-video/ffmpeg -c [I] media-video/ffmpeg (0.7_rc1@2011年07月02日): Complete solution to record, convert and stream audio and video. Includes libavcodec. $ ffmpeg -version 2>&1|head -n3 ffmpeg version 0.7-rc1, Copyright (c) 2000-2011 the FFmpeg developers built on Jul 2 2011 13:46:01 with gcc 4.4.5 configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --enable-shared --cc=x86_64-pc-linux-gnu-gcc --disable-static --enable-gpl --enable-version3 --enable-postproc --enable-avfilter --disable-stripping --disable-debug --disable-vaapi --disable-ffplay --disable-vdpau --enable-libmp3lame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-libfaac --enable-nonfree --enable-x11grab --enable-frei0r --enable-libfreetype --enable-pthreads --enable-libopencore-amrwb --enable-libopencore-amrnb --enable-libgsm --enable-libdirac --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libvpx --enable-libopenjpeg --disable-altivec --disable-avx --enable-pic --cpu=host --enable-hardcoded-tables下記の記述はパッケージのffmpegのバージョンが古い場合に最新版をソースから入れると欲しいオプションが追加される例です。
http://www.corbellconsulting.com/2010/07/using-ffmpeg-to-add-and-watermark-overlay-on-a-video-2/
http://ffmpeg-users.933282.n4.nabble.com/problem-with-movie-td3069917.html
http://fixedpoint.jp/ffmpeg/ffmpeg.html
http://www.ffmpeg.org/ffmpeg.html
動画に画像を書き込む場合に使うようですが使えません。
svn co svn://svn.ffmpeg.org/soc/libavfilter cd libavfilter/ sh checkout.sh cd ffmpeg/ ./configure --list-filters
export CFLAGS="-O2 -pipe -march=native"
export CXXFLAGS="${CFLAGS}"
export CHOST="x86_64-pc-linux-gnu"
INSTALLDIR=~/ffmpeg-`date +%Y-%m-%d`
mkdir ${INSTALLDIR}
make distclean
make clean# あらかじめパッケージ版を入れておくと必要なライブラリが入っている場合が多いです。 # $ eix ^ffmpeg$ -c # [I] media-video/ffmpeg (0.6_p25767@2010年12月19日): Complete solution to record, convert and stream audio and video. Includes libavcodec. # sudo emerge -av libnut # sudo USE="ffmpeg" emerge -av opencv
./configure \
--prefix=${INSTALLDIR} \
--enable-gpl \
--enable-nonfree \
--enable-version3 \
--enable-gray \
--enable-small \
--enable-frei0r \
--enable-libopencore-amrnb \
--enable-libopencore-amrwb \
--enable-libopencv \
--enable-libdirac \
--enable-libfaac \
--enable-libfreetype \
--enable-libgsm \
--enable-libmp3lame \
--enable-libnut \
--enable-libopenjpeg \
--enable-libschroedinger \
--enable-libspeex \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
--enable-libxvid \
--disable-altivec \
--disable-amd3dnow \
--disable-amd3dnowext \
--disable-mmx \
--disable-mmx2
make -j 3
make install
export PATH="{$INSTALLDIR}/bin:${PATH}"ffmpeg -i ./src.mp4 -vf "movie=0:png:./logo.png [logo]; [in][logo] overlay=10:10:1" logo.flv
2011-01-13
flvtool2のインストール
$ sudo layman -a graaff $ layman -l $ sudo layman -S && sudo eix-update $ eix flvtool2 $ sudo ACCEPT_KEYWORDS="~amd64" emerge -av flvtool2 $ ffmpeg -i src.mp4 tmp.flv && flvtool2 -UP tmp.flv用途は、
flow player http://flowplayer.org/plugins/streaming/pseudostreaming.html
nginx http://nginx.org/ http://wiki.nginx.org/Main
などで読み込んでいない部分のシークバーをクリックしても読み込める、など。
もしかすると失敗しても0を返すかもしれないので、
flvtool2 -UP xxx.flv && ... とつなげると困るかもしれない。
ffmpegのバージョンによってはエラーを出すかもしれない。
xen,kvm,別のサーバー、などにcentosなどを入れてrpmforgeなどを入れて、
yum install flvtool2としても似たようなバージョンが入るかもしれない。
2010-12-19
ffmpeg と flvtool2 でエラーになる例
FFmpeg version SVN-r25767 で作成した動画が flvtool2 でエラーになりました。
0.6_p25767 => 0.6 に戻しても使えるようになります。
0.6_p25767 => 0.6 に戻しても使えるようになります。
$ cat /etc/redhat-release
CentOS release 5.5 (Final)
$ flvtool2 -UP tmp.flv
ERROR: EOFError
ERROR: /usr/lib/ruby/site_ruby/1.8/flv/amf_string_buffer.rb:37:in `read'
ERROR: /usr/lib/ruby/site_ruby/1.8/flv/video_tag.rb:80:in `read_header'
ERROR: /usr/lib/ruby/site_ruby/1.8/flv/video_tag.rb:47:in `after_initialize'
ERROR: /usr/lib/ruby/site_ruby/1.8/flv/tag.rb:56:in `initialize'
ERROR: /usr/lib/ruby/site_ruby/1.8/flv/stream.rb:449:in `new'
ERROR: /usr/lib/ruby/site_ruby/1.8/flv/stream.rb:449:in `read_tags'
ERROR: /usr/lib/ruby/site_ruby/1.8/flv/stream.rb:58:in `initialize'
ERROR: /usr/lib/ruby/site_ruby/1.8/flvtool2/base.rb:272:in `new'
ERROR: /usr/lib/ruby/site_ruby/1.8/flvtool2/base.rb:272:in `open_stream'
ERROR: /usr/lib/ruby/site_ruby/1.8/flvtool2/base.rb:238:in `process_files'
ERROR: /usr/lib/ruby/site_ruby/1.8/flvtool2/base.rb:225:in `each'
ERROR: /usr/lib/ruby/site_ruby/1.8/flvtool2/base.rb:225:in `process_files'
ERROR: /usr/lib/ruby/site_ruby/1.8/flvtool2/base.rb:44:in `execute!'
ERROR: /usr/lib/ruby/site_ruby/1.8/flvtool2.rb:168:in `execute!'
ERROR: /usr/lib/ruby/site_ruby/1.8/flvtool2.rb:228
ERROR: /usr/bin/flvtool2:2:in `require'
ERROR: /usr/bin/flvtool2:2
$ ffmpeg -y -i tmp.flv -vcodec copy -acodec copy tmp2.flv
FFmpeg version 0.6.1, Copyright (c) 2000-2010 the FFmpeg developers
built on Dec 4 2010 15:35:31 with gcc 4.1.2 20080704 (Red Hat 4.1.2-48)
~中略~
frame= 6243 fps= 0 q=-1.0 Lsize= 9331kB time=204.04 bitrate= 374.6kbits/s
video:7493kB audio:1594kB global headers:0kB muxing overhead 2.688855%
$ flvtool2 -UP tmp2.flv
---
/tmp/tmp2.flv:
hasKeyframes: true
cuePoints:
audiodatarate: 62.9997023152194
hasVideo: true
stereo: true
canSeekToEnd: false
framerate: 30
audiosamplerate: 44000
videocodecid: 7
datasize: 9500370
lasttimestamp: 208.274
audiosamplesize: 16
audiosize: 1726071
hasAudio: true
audiodelay: 0
videosize: 7772385
metadatadate: Sun Dec 19 22:37:09 GMT+0900 2010
metadatacreator: inlet media FLVTool2 v1.0.6 - http://www.inlet-media.de/flvtool2
lastkeyframetimestamp: 206.572
height: 200
filesize: 9556611
hasMetadata: true
keyframes:
times:
- 0
- 0
- 8.341
- 9.375
- 13.179
~中略~
- 8720576
- 8944857
- 9162079
- 9372005
- 9548418
audiocodecid: 2
videodatarate: 295.906392540596
duration: 208.307
hasCuePoints: false
width: 352
...$ ffmpeg 2>&1 | head -n2
FFmpeg version 0.6, Copyright (c) 2000-2010 the FFmpeg developers
built on Dec 19 2010 23:03:42 with gcc 4.4.4
$ ffmpeg -i src/a.flv -vcodec libx264 -vpre medium dst2/a.flv
$ flvtool2 -UP a.flv
---
/tmp/dst2/a.flv:
hasKeyframes: true
cuePoints:
audiodatarate: 65.916396729909
hasVideo: true
stereo: true
canSeekToEnd: false
framerate: 30
audiosamplerate: 11000
videocodecid: 7
datasize: 481161
lasttimestamp: 12.966
audiosamplesize: 16
audiosize: 109639
hasAudio: true
audiodelay: 0
videosize: 370742
metadatadate: Sun Dec 19 23:07:46 GMT+0900 2010
metadatacreator: inlet media FLVTool2 v1.0.6 - http://www.inlet-media.de/flvtool2
lastkeyframetimestamp: 12.666
height: 240
filesize: 483766
hasMetadata: true
keyframes:
times:
- 0
- 0
- 8.333
- 12.666
filepositions:
- 763
- 824
- 273615
- 471023
audiocodecid: 2
videodatarate: 226.093475242943
duration: 12.999
hasCuePoints: false
width: 320
...# 使えない。 $ ffmpeg 2>&1 | head -n2 FFmpeg version SVN-r25767, Copyright (c) 2000-2010 the FFmpeg developers built on Dec 19 2010 23:17:31 with gcc 4.4.4 # 使える。 $ ffmpeg 2>&1 | head -n2 FFmpeg version 0.6, Copyright (c) 2000-2010 the FFmpeg developers built on Dec 19 2010 23:03:42 with gcc 4.4.4 # 使える。 $ ffmpeg 2>&1 | head -n2 FFmpeg version 0.6.1, Copyright (c) 2000-2010 the FFmpeg developers built on Dec 4 2010 15:35:31 with gcc 4.1.2 20080704 (Red Hat 4.1.2-48)
登録:
投稿 (Atom)