エンコードソフト ffmpeg のスレ
公式サイト
http://ffmpeg.org/
どうもこれでエンコードしたら、ファイルサイズがでかくなるんだがorz ffmpeg を使って Flash の swf を、
再生したままの映像を、
動画ファイルに出力する方法はありませんか?
出力の動画ファイルの形式はなんでもいいです。 あべちんさんのbuildでAVCHD/Liteの変換に使って来たんですが、
r19256の時、-vcodec libx264 以外何も指定しなくてもエンコードできたんですが、
これよりあとの版、例えば r19505 で同じことをやろうとすると、
Error while opening encoder for output stream #0.0 - maybe incorrect parameters such as bit_rate, rate, width or height
と言われてできなくなりました。
サイズとかレートを指定してもやっぱりだめみたいですが、なんででしょうか。
>>98
OKだよ。というかそれが禁止されたら
商用Linuxなんて成り立たないだろ? その考えだと動的リンクさせるとGPL抜けられることになる >>104
動的であっても、リンクはダメ。
GPLライセンス呼んだか。ちゃんと書いてあるだろ。
プロセス空間が共有されるやりかたでの
結合するのはダメっていえばわかるか? うちのUbuntu8.04LTS環境は、svnで最新のffmpeg入れたら
libx264のエンコードでsegmentation faultが出て止まるようになった。
最新ffmpegの要求で、x264も新しくして、--enable-sharedしてある。
aptとかで入れてあった何かが干渉することってあるのかな?
aptでx264とlibx264-devは削除したけど
libx264-57は依存関係で残してあるからこれがまずいのか?
#define FFMPEG_VERSION "SVN-r19536"
#x264-snapshot-20090729-2245 >>105
それって確か(昔の)RedHatの見解だよなぁ
nommuなcpuを無視しているから時代遅れな気ガス
個人的にはFSFの見解を優先するべきだと思う 時々、>>107 のような書込みがあるんだけど
これって、patch ファイルですよね?、だとしたら当て方を教えて欲しいのですが
ffmpeg-0.5 に当てればいいのかなぁ?
>>109
patchとも言えなくは無いけど、本質的にはコミットログ。
基本的に安定版に当てるのは難しいものなので、新しい安定版を待つかsvnを使いませう。 >>110 ありがとう
なるほど、次期バージョンへ当該機能を含めることを確定しましたというようなアナウンスみたいなものなんですね。 RTMP がサポートされたのは嬉しいな。
rtmpdump が sourceforge から消されたから、wktk VLC media player をインストールしました、ローカルネットワーク内でffserver を
立ち上げているのですが、Windows Media Player 11 だと
asf のストリーミング再生ができませんでしたが、VLC で再生することができました、
なぜWMP では再生できなくてVLC では再生できるのか不思議です、理由をご存知の方が
居られましたら解説していただけないでしょうか。 最近ffmpeg-develに(再)提出されたパッチ抜き出し
http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2009-August/thread.html
-Psygnosis YOP demuxer/decoder (PCゲームで使われた動画形式)
-Lagarith decoder (ロスレスのスクリーンキャプチャコーデック)
-Wave64 demuxer (Sonyの音声raw形式)
-AMR-NB decoder (スピーチコーデック)
-Playlist API
-IEC61937 compatible muxer (S/PDIF)
-TwinVQ decoder (MPEG-4で採用されている音声コーデックのうちの一つ)
-RTP/SVQ3 payload parser
-RTP/QDM2 parser
あとffmpeg-mtがエンコードのマルチスレッド化を開始したようだ。
http://gitorious.org/~astrange/ffmpeg/ffmpeg-mt/commits/encoding スレ違いだったらすいません。
ffmpeg で 任意のフォーマットから、m2tsフォーマットに変換させるオプションをお教え願えないでしょうか。 >>116
ffmpegのバグトラッカーにffmpeg -i inputfile outputfile.m2tsが動作しないと言うバグ立てると良いと思う。
多分-vcodec mpeg2video -f mpegts辺りで作れるとは思うけど。 rm 形式(RealPlayer)の動画ファイルをmp4 へ変換するオプションを教えていただけないでしょうか。 〉H264を検出しました
〉
〉もしファイルがB-フレームを参照として使っているなら、クラッシュまたはとぎれるかもしれません
〉Avidemux は安全にされた他のモードを使用できますが、フレームの正確さを失ってしまうでしょう.
〉そのモードを使いますか ?
という警告をavidemuxが出すのですが、これはどう判断していいんでしょうか?
ffmpegでlibx264を使っているわけですが、何か付けるべきオプションがあるのでしょうか?
フレームの正確さを失うというのは、場合によっては音がずれたりするという意味でしょうか?
また"そのモード"を使わない場合のトラブル実例は?
>>119
avi板のavidemuxスレ行った方がいいとおも。
avidemuxの内部構造って独自だったはずだし。 そんなことよりTSファイルの扱いをもっとましにしてくれ 俺はts使わないから試してないけど…
シークの扱いは改善されたはず>ts
>>65のパッチは誰も提出してないからマージされる訳も無く。
問題自体バグ報告すらされていない予感。 >>65のパッチも完璧じゃないよ。
あれを当てても変換できないものがある。
TSファイルの性質ゆえに、もとのTSの(最初の部分が)壊れているからなんだろうが、
垂れ流しされている放送波をキャプチャしている以上、これはどうしようも無いしなぁ 皆、最近の版で -vcodec libx264 でエンコードできてますか?
「サイズかビットレートの指定がおかしい」とか言われるんだけど。
指定してないのに。 ffmpegでH.264のエンコするのはいかがなものか >>131
エスパーだけどビットレート指定の後ろにkを付ければ良いと思うよ >>131
それどっかのサイトのブログかなんかで見つかるんだけど…
-vpreオプションで一応の回避ができるみたい。
-vpreはいくつかのプリセットを指定するオプションで、その内容は
Ubuntuだと(make installしているからどこでも一緒だよね?)
/usr/local/share/ffmpeg/
に置かれているみたい。たとえばlibx264-lossless_fast.ffpresetとか。
とりあえず、それに気づいたのが昨夜で、昨夜段階でその内容の全部を
OOoのCalcに並べたところまでやった。
これから、その内容の比較で、vpre無しで行けないかの確認とか
応用の研究をしようかというときに…おねむのじかんになりました…
で、今日はそれ忘れてたので放置。
とか言いつつ、さっき遊んでるAtom330予備録画機に
録画機と同じ古い版のffmpeg等を突っ込んで、4スレッドエンコード体制にしてた。
この間vpreのことは忘れていた。
それはそうと、
nice -n 19 ffmpeg -i "$@" -threads 0 -s 640x480 -deinterlace -vcodec libx264 -cqp 28 -sc_threshold 2 -flags2 mixed_refs -flags loop -subq 6 -trellis 2 -nr 600 -acodec libmp3lame -ab 128k "x2n_${file%.mpg}.avi"
で、31fpsくらいで行けんだけど、CPU負荷は半分くらいなのな。
二つ同時にエンコードすると100%程度で20fpsx2くらいになるかなぁ…
まぁ、急ぎのエンコードより、大量ファイル処理することのほうが多いからいいんだけどね…
>>134
ありがと。プリセットが無くデフォルトだと動かない仕様になってたのね。
winでコンパイル環境も整備してないので、ゆっくり考えますです。 その後、最新リポジトリからpresetファイル群だけ持ってきたらエンコはできるようになりました。
libmp3lameを使っている場合、-acodec libmp3lame -vol 254で
最大限にボリュームが大きくなるって解釈でいいですよね?
と思っていたんですけど
なんか、うまくいかない。
二桁の数字を指定すると小さくなるから
機能しているみたいなんだけど、もとのより大きくなんない。
試してみると、255より大きい数字が通って、それによって
音量を元より大きくできるみたい。
例によって、仕様変更か…(ちなみになんとか君とかのサイトの記事参照したのが敗因か)
この変更内容について、どっか説明されている記事無いかなぁ…
上限がどうなっているのかわかんないし…
他の音源に揃える上でのTipsとか無いかなぁ…
256で波形にノータッチ、それ以外は256分の指定した数字倍にされ、
負の数なら波形が反転するんじゃなかったっけ? 二つのバージョンのffmpegを併用したいのですが、
(この形式には古いバージョン、この形式は新しいバージョン)
どうすればいいのでしょうか?
>>139
ffmpegじゃなくwineで2つのバージョン用意して使ってる
ほかの人はどうかしらないけど
--prefix=/home/user/local
にしてる。$PATHは通さず
$/home/user/local/bin/wine なんたらって使ってる。 実際にいろんな動画に使ってみたけど、
ffmpegって結構エラーはくな。
限定された使い方ならいいけど、
動画アップロードサイトみたいなのに
利用するのは難しいと思った。 バグ報告しましょう。
http://roundup.ffmpeg.org/roundup/ffmpeg/
>動画アップロードサイトみたいなのに
FFmpegはFacebookとかのサイトのサーバーサイド変換で実際に使われてる。
YoutubeもFFmpegっぽいって話がある。
ニコ動はどうだったかな。 >>142
たぶんそういうところは、自社で
修正していると思うよ。
修正して開発元には何も報告していない。
>>143
FacebookとPicsearchはエラーログやサンプルを提供した。
YoutubeはGoogle側が一部修正したように見えるけど、バグ報告やパッチの提供はしてないね。確かChromiumチーム経由でYoutubeチームへフィードバックを頼んでたはずだけどどうなったんだっけか。 GPLである以上、ソースを改良・改変したら、要求された場合に提出しなきゃならないんだけどな バイナリを配布した場合ね、それ>提出しなきゃならない
サーバーサイドで使うなら提出しなくても問題ない。
それが問題だってんでAGPLができた訳で。 FFmpegのATRAC3デコーダがfixed-point化されてRockboxに移植されてるらすぃ。 Happy 20,000; New YouTube Engine
http://multimedia.cx/eggs/ なんか、ffserverについて調べてたらこんなん見つけた。
既出?
ffmpeg ドキュメント(日本語訳)
http://fixedpoint.jp/ffmpeg/
複数のマシンからそれぞれ別々の映像をffserverが動いてる1台のマシンに送り、そこから配信することは可能でしょうか?
ポート8090からマシンAの映像、8091からマシンBの映像といった配信を目指しております。
知恵をお貸し頂ければ幸いです。 x264に関して質問です
p4x4は使っても問題無くなりましたか?昔ドット単位ぐらいの細かいのが動きまくるソースだと多少効果あるとか
聞いたんですが…
あとバージョン関係無いですが
-qmax下げるのと-b&-bt上げるのは理論的にはどっちがサイズに対して画質が稼げるんでしょうか
例えば
-b 512k -bt 512 -qmin24 -qmax39の設定なら
-bと-btを576k程度まで上げるのと
レートそのままで-qmaxを37程度まで下げるのとでサイズが同じなら理屈として
画質が上なのはどちらになるんでしょうか? 品質指定で1passか、ビットレート指定で2passが普通。
サイズが同じ時の画質は多分前者の方が良くなるはず。 >>155
アドバイス有難うございます
いくつか試してみましたがやっぱり-bと-btを上げるた方が画質は良かったみたいです
というか-qmaxを下げるのはソースにもよりけりですがフローしてビットが守られなかったり
そうでなくても画質は大して上がらない結果が殆どでした
-b、-btを上げた状態で妥協出来る-qmaxを探すのが妥当でした
参考になりました、アドバイスどうもです しつもん
CentOS5.3
rpm -Uhv rpmforge-release-0.3.6-1.el5.rf.i386.rpm
yum --enablerepo=rpmforge install ffmpeg
でインストールしたところ
lame: output buffer too small (buffer index: 9195, free bytes: 597)
になった。
http://wiki.crav-ing.com/index.php?%E5%90%8C%E6%A2%B1ffmpeg%E3%81%AElame%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E4%B8%8D%E5%85%B7%E5%90%88
に従ってバッチを入れようとしたが、
yumで入れたせいなのか
[root@localhost local]# find / -name "*libmp3lame*"
/usr/lib/libmp3lame.so.0.0.0
/usr/lib/libmp3lame.so.0
libavcodec/libmp3lame.cが見つかりません。
どうすれば libmp3lame.cはソースコードのことなのでそれを用意してパッチ当ててからコンパイルしろってこと >>157
え、( ̄■ ̄;) lameにそんなバグがあったのか・・・ 今まで音はaacかvorbisでやってたから
解らなかった。
ちなみにパッチは>>158の言う通りソースに当てる物なのでffmpegのソースを入手してそこへ
パッチを当ててからffmpegを自分でコンパイル(面倒くさいですw)
そのwikiの記事だとlameの開発バージョンで対策されてるって書いてあるから、lameの開発バージョンの
ソースを入手して自己ビルドした方がまだ楽なような気がします。
でもこの方法は確実に今あるlameと同じ場所をインストール時に指定して綺麗に上書きしないと
他の依存してるlameを使用するアプリが動かなくなる可能性あり。
それとリリース板と開発板の違いが大きいとやはり他の依存が動かなくなる可能性あり。
まあそうなったらまたlameのrpmパッケージを再インストールすれば良いだけかな。 >>158,159
全然意味がわかりません><
結局yum deleteして、
各エンコーダとffmpegを順番にインストールしました
lameの3.99a1の取得の仕方がわからなかったので3.96かそこらを入れてOKでした
>>160
あ、良いんじゃないかな。自分の言ってるlame開発板ってのが3.99a1なんだけど
これってLinuxの場合は自分でsvnでソース取ってきてビルドしないとダメだろうから。
>>160の今回の情報で自分でビルド出来ない人はlameのバージョンを落とす事でとりあえず
解決するって事も解ったって事だ。情報トンです。 低ビットエンコが日課の者ですが質問です
再生中に一部の場面で数フレームぐらいパタパタッと黒いタイルと言うか
ブロックを散らしたように画が欠ける部分があるんですが何が原因でしょうか?
単純にビット不足? ビット不足から来るという認識は正しいが、情報が少なすぎてなんとも。
とりあえずffmpegとx264のバージョンを上げて、より圧縮率の高いプリセットを使え。
あとビットレート指定なら2passにしろ。
取りあえずのアドバイスはそんなとこ。 とりあえず2passが良いと思ってx264でやってみたのですが、2回目のエンコがビットレートや
サイズ等が不正ですって始まらない。
オプションは-crfとか-qscaleでやったんだけど(ビットレート指定無し)、ビットレート指定
だと2回目いける。
もしかして2passってビットレート指定のエンコじゃないとダメなの? そう
詳しく知りたきゃx264中心に検索すりゃ良いよ。 3g2からAVIにするにはどうしたらよいでしょうか?
やってみたら、音声のみでファイルサイズが
やたらデカいのが出来てしまいました。
それと、このソフトってコーデック指定はできますよね? スレチだったらすみません。 CentOS5.3上でffmpeg動かしています。
PSP用の動画変換したいのですが、再生できません。
>PSP上ではビデオコーデックが不明な形式になります。Windows+Gomプレイヤーでは再生できます。
Gomプレイヤーで動画形式を見ると、AVC1(GVC)となっております。
:変換用スクリプト
ffmpeg -i hogehoge.avi -vpre /usr/local/src/ffmpeg/ffpresets/libx264-default.ffpreset -vcodec libx264 -coder 1 -bufsize 128 -g 250 -s 480x272 -r 29.97 -b 180k -level 21 -acodec libfaac -ac 1 -ar 44100 -ab 48k -f mp4 hogehoge.mp4
ヒントいただければ幸いです。 >>169です。
ffmpegを以前構築しており、環境をもう一度作り直したのですが、PSPで動画が再生できません。
真空波動研で以前作ったPSPで再生できた動画、現在造ったPSPで再生できない動画を調べてみました。
[再生できない動画]
480x272 24Bit AVC/H.264 High@2.1 29.97fps 57926f 186.32kb/s AAC 44.10kHz 1.0ch(1/0 C) LC 48.00kb/s
[Extra][2] MP4 Base Media v1 MetaData [MPEG4] 00:32:12.799 (1932.799sec) / 58,047,966Bytes
[再生できる動画]
480x272 24Bit AVC/H.264 Main@2.1 29.97fps 57935f 318.01kb/s AAC 44.10kHz 1.0ch(1/0 C) LC 48.00kb/s
[Extra][2]MP4 Base Media v1 MetaData [MPEG4] 00:32:13.099 (1933.099sec) / 89,568,173Bytes
High@2.1 29.97fps、Main@2.1 29.97fps の2つ違いがあるようですが、ffmpegのMain@の設定方法を現在探しております、、、。 自己解決しました。
-vpreオプションでlibx264-fastfirstpass選べばPSPで見ることができました、、、。
大変お騒がせしました。
チラ裏、スレ汚しすみませんでした。 動画のサムネイル作っているんだけど、ogmだけ
ffmpeg -ss 1 -i src.ogm -f image2 -vframes 1 -an -deinterlace dst.jpg
で、サムネイルが作れないんだけど何でかな。 totem-video-thumbnailerでもogmはサムネイル作成に失敗する事が多い
gstreamer-ffmpeg入れてるからffmpegのバグかも
俺はmkvmergeでogmを全部mkvに変換しちまった
なぜかmkvにすれば問題なくサムネイルが作れるんだよなぁ >>174
貴重な情報をありがとう。早速検討します。 ffmpeg -y 〜 >file 2>&1 &
で出力をログファイルに送りつつバックグラウンド実行できると思ったんですが、
jobsでステータスを見るとStoppedになってます。
実際ログファイル見ても動いてません。
bg %1
しても動いたと思った直後Stoppedになります。
fg
すると普通に動くのですがこの動き超困る。 >>177
その動きからするとttyを直接叩いてるんだろうな
だったらscreenでも使うしかないんじゃね? >>178
日本語でOK?
申し訳ないが何を言ってるのかさっぱりわからん >>179
日本語勉強して出直してくることをお勧めする ttyとscreenを知らないので意味不明になっているだけでは。
>>177
うちの環境では正常に動作して、ログもとれる。
〜の部分に問題はないか? FFmpegをコンパイルしようとしたら
undefined reference to `x264_encoder_open_77'
こんなエラーが出るんだけど、もしかしてx264のバージョン0.77って
対応してない? >>182
x264は更新が激しい(内容の変化)ケースが多いから最新の奴を入れるとffmpegやmplayerやvlc等が
make出来なくなるケースがあったです。
大抵は少し経つとffmpegやmplayer等のソースが対応するパターンが多いけど。
x264が更新されたら(特にrev76が77に変わったときなど)最低でもx264と同じ時期か少し
後の(x264が出た時より数日あととか)ソースを持ってきて入れるようにしてます。
まあchengelogとかgitで見れば良いのだろうけど、自分は見ても知識無いので^^;
とりあえずx264のrevが上がったら数日待ってからx264を更新して数日後ffmpegのソースはその時点の
最新を使用するようにしてます。
revが同じで1271とかそういう4桁のバージョンが変わっただけなら結構平気なんだけど・・・ ふと見かけないオプション見つけたので質問です
-sws_flags lanczosオプションってリサイズのオプションですよね
具体的に通常のリサイズとは処理が何か違うんでしょうか? 例えば、映像より音声の方が短いようなもを
ミックスして、ffmpegで1つの動画にします(mpg形式)。
そのような動画を2つを cat で結合します。
こうして作った動画ファイルは
元々、音声の長さが短かったため、
1つめの映像が終わる前に2つ目の音声が再生されてしまいます。
このようなことが起こらないために
うまいやり方はありますか?
-vsync とか -async とか -timestamp とか
そのへんのオプションが使えそうな気がするのですが、
マニュアルの記述があまりに貧相なので使い方が
わかりません。
>>186
ffmpegのsocで結合機能が作られてるけど、まだ本線にマージされてないねぇ。 PSPやiPhone互換のH.264を出力するffmpegかmencoderの設定教えてください! >>184
確かデフォルトはbicubicだけど、
lanczosはbicubicに比べてよりシャープな画像が得られる
エッジが強調されすぎるので不自然に感じる人も多いけど
俺はボケ気味の元画像を縮小してクッキリさせたい時に使ってる >>188
Avidemuxの自動設定を使え
なぜかGtk版は自動設定が動かなかったりするからQt版おすすめ >>190
おおぅ、こんなのがあったんですね。ありがとうございます。 変換君で ttp://blog.k-tai-douga.com/ffmpeg のrev.20220を使っており、
h264のbaseline profileを使いたいのですが、
Error while opening encoder for output stream #0.0 - maybe incorrect parameters such as bit_rate,width or height
というエラーが出て変換できません。
-vcodec libx264 -vpre C:\ffpresets\libx264-baseline.ffpreset -s 176x144 -r 10.0 -b 128k -f 3gp
上記設定では無理なのでしょうか?
エラーの出ない設定などあればご教示下さい。
>>193
変換君の事はよく解らない。もしかしたらその変換君のビルドに使用したx264は本当に最新のやつじゃないかな。
とうのは最近のx264の更新がやたら激しくて、つい最近までしばらく0.76だったx264が0.77になってる。
この小数点のバージョンがあがった時はえてして大きな変更加えられてるらしく、今までのコマンドとか
変更になったりするらしい。
で、結果から言うと自分のffmpegはx264を0.77に上げたときあたりから-vpreのオプションが受け付けられなく
なるケースが出てきた。ググったら他にもそんな人が出てて対策はbaselineじゃなくてdefault使ってくれとか
書いてる人も居たかな。
ともかく今の状態だと動かないプロファイルはbaseline、mainは駄目だったね。default、normalなんかは
動いた。けどbaseline、mainに比べて質は上がるけどエンコ速度は遅くなるだろうね。
libx264-baseline.ffpresetの「baseline」の部分を「default」や「normal」に書き換えてやれば
とりあえず動くと思うよ。もしくは変換君のバージョンを以前の物に下げるかかな。 >>194
レスありがとうございます。
defaultやfastなんちゃらとかは試して、出来るということは知っていたのですが、
baselineで変換したいのです。
というのも、携帯で見たいがためです。
defaultで変換した場合、真空波動研で見るとhigh profileとなっています。
自分の勘違いかもしれませんが、high profileだと携帯では再生出来なかった気がするので、
なんとかbaseline profileにしたかった次第です。
とりあえずは、以前のバージョンのffmpegなど試してみようかと思います。 Ubuntu 9.04を使用しています。
Playstation EyeというWebCamの映像を、ffserverを使用して配信したいのですが、以下のエラーがでてしまいうまく配信することができません。
考えられる原因等わかる方いましたらよろしくお願いします。
[video4linux2 @ 0x957bac0][3]Capabilities: 5000001
[video4linux2 @ 0x957bac0]The V4L2 driver changed the video from 320x240 to 640x480
[video4linux2 @ 0x957bac0]ioctl(VIDIOC_DQBUF): Input/output error
Input #0, video4linux2, from '/dev/video0':
Duration: N/A, bitrate: -2147483 kb/s
Stream #0.0: Video: rawvideo, yuyv422, 640x480, -2147483 kb/s, 1000k tbr, 1000k tbn, 1000k tbc
Output #0, ffm, to 'http://localhost:8090/feed1.ffm':
Stream #0.0: Audio: mp2, 44100 Hz, mono, s16, 32 kb/s
Stream #0.1: Video: mpeg1video, yuv420p, 160x128, q=3-31, 64 kb/s, 1000k tbn, 3 tbc
Stream #0.2: Audio: mp2, 22050 Hz, mono, s16, 64 kb/s
Stream #0.3: Video: 0x0000, yuv420p, 352x240, q=3-31, 256 kb/s, 1000k tbn, 15 tbc
Could not find input stream matching output stream #0.0
Tue Oct 20 14:05:15 2009 127.0.0.1 - - [GET] "/feed1.ffm HTTP/1.1" 200 4149
Tue Oct 20 14:05:15 2009 127.0.0.1 - - [POST] "/feed1.ffm HTTP/1.1" 200 0 追記: ffmpegのバージョン・Configuration設定
FFmpeg version 0.5-svn17737+3:0.svn20090303-1ubuntu6, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration: --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --extra-version=svn17737+3:0.svn20090303-1ubuntu6 --prefix=/usr --enable-avfilter --enable-avfilter-lavf
--enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads
--disable-stripping --disable-vhook --enable-libdc1394 --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-armvfp --disable-neon --disable-altivec --disable-vis --enable-shared --disable-static