エンコードソフト ffmpeg のスレ
公式サイト http://ffmpeg.org/ どうもこれでエンコードしたら、ファイルサイズがでかくなるんだがorz >>267 それも踏まえて、仮想マシンなりコンテナなりで環境を隔離した方が結果的に安くつく。 >>266 まぁ、好きにしてくれ。ただ、 > 再インストールを余儀なくされるときもある それはない。 フリーなAACエンコーダの実装って無いのかな? 特許問題についてはどうしようもないけど 試行錯誤していると再インストールしたくなる状況にはなるなw ffmpegでコーデック関連で問題が出る。いろんなファイル扱っていると必ずおきる ある動画はうまくいくが、ある動画はだめとかね。 正常にエンコードできるバージョンや組み合わせを試行錯誤して探さなきゃならない。 そういう場合に、ffmpegだけをアップグレードしたくなる。 だがffmpegを消すと関連コーデックも一緒に消える。 関連コーデックが消えるとVLCやmplayer(mencoder)も消さなきゃいけなくなる。 非公式のリポジトリやソースから無理やり入れるとバージョンが違うなど言われる。 GUIでの動画再生プレイヤーにも影響が出る。リポジトリから入れられなかったり。 結果的に、何個もあるコーデックからプレイヤーまで全部ソースからコンパイルするはめになる。 そんな状態だと、OSのバージョンアップで依存関係で問題が出る。 HDD故障などでOSから再インスコする必要になったら今までの手順全部やり直し。 メモを残しているがすごく大変な作業。仮想マシンならエンコード用に安定させた環境をOSごと保存しておける。 前の環境をとっておくから、ffmpeg等の新バージョンが出たときの実験も楽。最新ソースコードも安心して利用できる。 ホストOSはディストリ配布の安定した環境をそのまま使える。 デスクトップ環境があってLinuxで動画再生とかしたいのなら エンコードは専用マシン(仮想マシン)を用意したほうがいい。 普段 Linux 使いじゃないんですけど、システムが標準提供している libz, libbz2, libpthread 等の ライブラリ以外は全部スタティックリンクにするとか、ライブラリをビルドするときに --prefix を 変えてインストールしてそこのパスを -I だの -L だので指定するとかで、依存関係の問題を 回避することはできないんでしょうか? >>270 ffmpeg自体に実験的なaacエンコーダが実装されてる(>>68 )。 開発も遅いながら進んでるので、興味あるならML覗くと良いよ。 >>272 今時依存関係で問題抱えてるのなんて低能だけだ [NULL @ 0x3f550]Invalid and inefficient vfw-avi packed B frames detected [NULL @ 0x17cfc50]error, non monotone timestamps 100 >= 100 [avi @ 0x3e3d0]max_analyze_duration reached こういうメッセージの意味の説明があるページってどっかにないですか? 同じコマンド実行しているのに、成功したりしなかったり。 失敗したときは、もう一度実行しても失敗する確率が高いのに 3回目に成功する確率は高い。 不思議すぎ。 複数のJPEGからSWF作ったんだけど、これってJPEGは何でエンコードされてるの? ffmpegでゲームflashから画像抽出は出来ないんでしょうか? 動画なら抽出出来るのですが、ゲームだと出来ません ffmpeg -y -i me2.swf -f image2 -ss 00:00:01 -vframes 1 aa2.jpg ↓ [swf @ 0x18643d0]Compressed SWF format not supported 圧縮しているSWFを解凍 cd ffmpeg cd tools gcc -o cws2fws cws2fws.c -lz ./cws2fws me2.swf me42.swf ↓ 解凍したSWFで再挑戦 ffmpeg -vframes 1 -ss 1 -i me42.swf -f image2 aa2.jpg [swf @ 0x24173d0]max_analyze_duration reached [swf @ 0x24173d0]Estimating duration from bitrate, this may be inaccurate me42.swf: could not seek to position 1.000 Input #0, swf, from 'ume42.swf': Duration: 00:07:19.36, bitrate: 127 kb/s Stream #0.0: Audio: mp3, 44100 Hz, 2 channels, s16, 128 kb/s Output #0, image2, to 'aa2.jpg': Output file #0 does not contain any stream 解析は出来るようですが、画像出力が出来ません これはどうしたらよいでしょうか?圧縮した状態もしくは、解凍後のSWFから画像出力させる方法分かる方、 いらっしゃいましたらどうぞよろしくお願いします<m(__)m> あと、抽出した画像のサイズを例えば、300×300以内に納めるサムネイルって出来ますでしょうか? 縦長の画像でもそれに寸法を合わせてちゃんと縮小してくれるようにしたいのです。 合わせてどうぞよろしくお願いします<m(__)m> ffserverを使ってRTPで配信したとき、パケットロスを 再送によって回復してはくれないですよね? ffserver.conf に関するドキュメントでは以下のフォーマット # Format of the stream : you can choose among: # mpeg : MPEG-1 multiplexed video and audio # mpegvideo : only MPEG-1 video # mp2 : MPEG-2 audio (use AudioCodec to select layer 2 and 3 codec) # ogg : Ogg format (Vorbis audio codec) # rm : RealNetworks-compatible stream. Multiplexed audio and video. # ra : RealNetworks-compatible stream. Audio only. # mpjpeg : Multipart JPEG (works with Netscape without any plugin) # jpeg : Generate a single JPEG image. # asf : ASF compatible streaming (Windows Media Player format). # swf : Macromedia Flash compatible stream # avi : AVI format (MPEG-4 video, MPEG audio sound) が使えることになっているのですが、これらのフォーマットは データの途中がロストしてもまたデータが届くようになれば 回復できる、ということなのでしょうか? それができないとシークすらできない変フォーマットじゃん。 >>286 ffserverでは試したことはないが、 RTP (UDP)の仕組みでいうと確かに再送などで回復をしてくれたりすることはない。 その代わりに、どのメディアフォーマットであってもフレームの始まりは 途中からでも見つけられるような構造になっているので、データが途切れたときは フレームの開始位置まで読み捨てて、そこから再度表示し直す。 また、ストリーミングでは完全フレーム(単体で完結するフレーム)だけでなく 差分フレーム(前のフレームから変化した場所だけを送るもの)で転送する仕組みが あるが、この場合は一般に完全フレームが届くまで読み捨てることになる。 (実装やプロトコルによっては差分だけでも表示してしまうものもあるが、 この場合は真っ黒な画面から部分的にうごめいて見えたり、おかしな表示に なったりする) cfrのソースをx264でmp4出力したものをffmpegでmp4にmuxし直すと 最大fpsがソースのfpsの2倍 最小fpsがソースのfpsのまま のvfrになってしまうんですがどうすればいいでしょうか? あまり弊害はないとは思うのですが、cfrのままにしたいです 使用しているx264はr1391(x264.nlビルド)、ffmpegはgit-svn-r21221(自ビルド)です あの…何か根本的に勘違いでもしてるのでしょうか…?orz そうだとしたらご指摘していただけるとありがたいです それともIRCで聞いた方がいいのでしょうか?(英語が残念なもので… Stream #0.0: Video: rawvideo, yuv420p, 1920x1080, 745750 kb/s, 29.97 tbr, 1000k tbn, 29.97 tbc このtbr,tbn,tbcてどういう意味? >>291-292 仕方がないので翻訳してやったぞ。 --- ffmpegでは3種類の異なるタイムスタンプがある。表示されている値は逆数で、 それぞれ1/tbr, 1/tbn, 1/tbcが実際のタイムベースになる。 tbnはコンテナ側に書かれたストリームのタイムベース。 tbcは特定のコーデックだけに存在するコーデック側のタイムベース。 tbrはビデオストリームから類推された値で、これが実際にビデオを表示する際に 使用されるレートになる。ただしインターレース化されたストリームのように、 画面の半分ずつ書き換えるタイプの場合は2倍の値が書かれている場合がある。 >>293 ありがとう!参考にさせていただきます! ∠(゚◇゚) 地デジキャプチャしようとしてるんだけど ffmpeg で640x480以上サイズあげると緑色になってしまうんだけどなんで? 現状 Centos5とCentos4 >>295 地デジの解像度って640x480だし。 >>296 1440x1080とか1920x1080ではなくて? int sws_scale(struct SwsContext *context, uint8_t* srcSlice[], int srcStride[], int srcSliceY, int srcSliceH, uint8_t* dst[], int dstStride[]); ffmpegのバージョンは0.5 そもそも -f video4linux2 で画面が表示されないんだよね 黒でも緑でもない灰色画面になる カーネルあげたら何か更新されてるのかなと思って 2.6.18->2.6.30に更新したけど変化なしで相変わらず-f video4linux2が使えない CentOSだからってわけなのかな? とりあえず今Fedora12でやってみる これで駄目なら引き伸ばして高繊細化のプログラム作るしかないような気がする 5.1chのオーディオを別形式に変換するとチャンネルアサインが狂うorz なんでアサイン変換してくれないんだよ面倒すぎるわ ffmpegでエンコードするとき著作権保護の設定てない? youtubeなんかのh264でエンコードされたとき色少なくして丸っこくしてる エンコードはどうやってやるんですか?こんなかんじで↓ http://imagepot.net/view/126476194563.png aviutlのh264guiでできますか? audioだけ先頭xx秒遅らせるってかんじのコマンドはないものでしょうか? H264(AVC)/AAC形式のTSを、MP4BOXまたはMP4Muxer経由で、MP4にコンテナ変換するより ffmpeg使ったほうが圧倒的に早く、MP4BOXではエラー吐くファイルも容易くコンテナ変換できることに気付いたものの ほぼすべて音声がズレてるので 2種類の静止画から1つの動画を作ろうと考えてます 作られる動画はテレビによくあるワイプの構成にしたいのです +-----------------------+ | +-----+ | | |動画1 | | | +-----+ +---------+ | | | | | | |動画2 | | | | | | | +---------+ | +-----------------------+ 位置を指定することで作れると考えたのですが オプションの中には見当たらないようなのです 静止画像枚数は300枚程度なので 手作業で2種類の静止画像を1枚に編集していくのは困難です 何かよい方法ありませんか? >>307 > 静止画像枚数は300枚程度なので > 手作業で2種類の静止画像を1枚に編集していくのは困難です ffmpeg でできるのかどうなのかは知らないけれど ImageMagick の convert を使えば合成ってのは出来る。 ファイル名が連番とかになっていれば、bash とかの for 文で繰り返すこともできる。 背景画 bg001.png 左上 lu001.png 右下 rd001.png 中間 tmp001.png 完成 new001.png for i in `seq -w 1 300` ; do nice -n 2 convert bg${i}.png lu${i}.png -gravity northwest -geometry +10+10 -composite tmp${i}.png nice -n 2 convert tmp${i}.png rd${i}.png -gravity southeast -geometry +10+10 -composite new${i}.png nice -n 2 rm tmp${i}.png done >>308 おおーありがとうございます やってみます windowsでffmpegを使ってカメラと、マイクからの録音をしたいんだけど 可能?可能ならコマンドはどんな感じ? ここのページみたいなことがしたいんだけど・・・ ttp://techmemo.g.hatena.ne.jp/emergent/20080408/1207580625 >>310 てかさ、Linuxならそこのページの方法で実現できるんでしょ? なんでわざわざ苦労してWindows使うんだ? >>311 ,312 ここにしかffmpegのスレないようなので・・・ Windows使う一番の理由はWindowsに慣れているからです Linuxは現状日本語の情報少なすぎて英語できない自分にはキツイのです Windows上でも仮想Linuxならすぐ動くのにな ごめんなさいLinux板でwindowsのこと聞いた自分が馬鹿でした 郷に入っては郷に従え 食わず嫌いせずに挑戦してみます 板違いだけど、Cygwin でいけるよ。 自分でビルドしても良いし、Cygwin Ports から持ってきても良いし。 >>313 > Linuxは現状日本語の情報少なすぎて英語できない自分にはキツイのです と言いつつドンピシャなページあるんじゃん? 自分で>>310 に挙げてる。 同様の日本語の記事がみつからないからここに来てるんでしょ? そんなんでLinuxを日本語の情報が少ないとバカにするのはどうなのかと思うわ。 >>310 wineで使う人も居るかも知れないから一応答えると、vfwか*.avs経由で可能。 詳しくは ffmpeg/libavdevice/vfwcap.c と ffmpeg/libavformat/avisynth.c を読め。 >>313 今となってはどうでもいいことだが、 俺は10年前のまだ翻訳エンジンも荒さが残っていた時代に、 この国と世界全体の人口比率、この国と世界の民族の底意地の悪さ率を 日本語linuxとして誉れ高いvineのalsaドライバを通じて思い知ったよ。 英語できないとか情弱の甘え。 多少の手間隙は辛抱して世界に目を向けたほうが、簡単に探し物が見つかるし イエローJAPの暗黒面を見なくて済むし >>317 ,319 ごめんなさい。 よく考えたら自分はwindowsでの情報が日本語でなくて困っているんでした。 確かにlinuxの情報は自分で出してるし、英語だったとしても翻訳できるんだから何も問題なかったですね。 そして >>318 ありがとうございます! vfwを使って無事キャプチャできました! お騒がせしました >>320 おめでとう。 とりあえず今はハードも安いんだし Linuxマシンも1台持っておくことをオススメするよ。 audioの片チャンネルだけを取り出す(あるいは消す)ってことはできないもんでしょうか? 具体的には、aac 音声多重2chを左右チャンネルで分離分割して、2トラックにしたいのですが(mp4boxなどで) wavかLPCMにしたら、あとは適当な変換スクリプトで作れるだろ >>324 誰でも思いつくことをわざわざ書くなよクズ ロスレスでチャンネル分離できないかって疑問なら、まあ無理だろ LとRが一般には非常に似通っていることを利用して 上手いこと圧縮率を稼いでるわけだから 圧縮状態ではLとRの情報が独立してない、だから分離もできないんじゃないか tempでwav化してんだろうけど、Audacityでmp4(m4a/aac)直読→分離→出力できるな ただし、惜しいことにCUI化されてないから、ちまちまエテ公のように手動でマウス動かすしかない かと言って、FAAD→AviSynth→FAAC も結構時間かかりすぎるしなあ http://www.ffmpeg.org/ March 1, 2010 We have been busy over the past few months. Among other things, the results are an Indeo 5 video decoder as well as audio decoders for AMR-NB, Sipro, MPEG-4 ALS and WMA Voice, complete support for Bink, CDG and IFF PBM/ILBM bitmaps, an RTSP muxer, Bluray (PGS) subtitle support, a protocol for file concatenation and the ffprobe tool for extracting information from multimedia files. 見よう見まねで2passエンコードしているんですが、-scale の値をいじっても画質がまったく変わりません。 これってどこか文法間違ってますか? ----- ffmpeg -i sample.avi -pass 1 -passlogfile log -vcodec libx264 -vpre ibx264-fastfirstpass.ffpreset -qscale 4 -s 1280x720 -f rawvideo -an -y sample_conv.mp4 ffmpeg -i sample.avi -pass 2 -passlogfile log -acodec libfaac -ab 128k -ac 2 -vcodec libx264 -vpre libx264-hq.ffpreset -qscale 4 -s 1280x720 -b 4096k -r 30000/1001 -aspect 16:9 -g 300 -sc_threshold 50 -y sample_conv.mp4 ----- >>329 すいません、-scale ではなくて -qscale でした。 mpeg2から静止画切り出してるのですが、ファイル後半を開始位置に選ぶと 出力されるまでのタイムラグがすごい大きくなるのを回避する方法はないでしょうか。 >>331 vpreの中で設定されている値が優先されるということでしょうか。 ちょっといじってみます。 FFmpegだけでラジコ録音するにはどうしたらいいの? ffmpeg -i rtmp://radiko.smartstream.ne.jp:1935/TBS/_defInst_/simul-stream -vn -acodec libmp3lame -ab 64k TBS.mp3 これだとダメ 何が間違ってるの? >>335 そうか、ここはLinux板だからね win環境なんだけど、誰かいいアイデア出してもらえる人いませんか? ttp://pc12.2ch.net/test/read.cgi/software/1267949674/68 のサンプルだと問題なく録音できるんですが>>334 だとどうしても無理… >>337 ttp://blog.k-tai-douga.com/ ここのwin版を使ってます。 結局、何がダメなのかが分からない… >>338 言葉たらずだった。 rtmpdumpのWindows版。 そうすると>>335 とか大丈夫じゃない? 今現在Windowsで、rtmpdumpを使ってflvファイルを取得して、ffmpegでmp3に変換しています。 rtmpdumpでもmp3ファイルを取得できますが、レートが48k固定になって64kとかに変換する方法が分かりません。 もしffmpegだけでmp3 64kにできてタイトルとかアーティストなどのタグが付けられるなら それでいいんですが… >もしffmpegだけでmp3 64kにできてタイトルとかアーティストなどのタグが付けられるなら それでいいんですが… rtmpdumpの間違いですね^^; >>340 ソースが48kbpsなら無理に64kbpsにする必要もないと思うよ。 ポータブルプレイヤーに入れたいけど48kbpsが対応してないとかならしょうがないけど。 と、本題からずれた所だけど一応。 >>342 まさにポータブルプレイヤーが対応していないのです。 対応してたらこんな苦労はしないのですが >>336 Windows消してLinuxを入れる。 もしくはとっとと消えろ! スレ違いとはいえ、まったくのスレ違いじゃないからここで聞いてみたのだが悪かったよ 消えるよ 板違いだけどスレ違いじゃないような状況よね。 Windows板とか、どっか別な場所にffmpegスレって無いの? まぁ、マシンパワーあるなら仮想マシンにLinux突っ込むとか。 >>334 僕もWin環境ですが、ffmpegだけで録音してます。 >>335 のリンク先コメント欄で指摘されている通り、app pathの[/]を[%2f]にURLエンコードしてあげればOK。 ffmpeg -i rtmp://radiko.smartstream.ne.jp:1935/TBS%2f_defInst_/simul-stream -acodec libmp3lame TBS.mp3 上記で64kで保存できます。僕は-tオプションで時間指定してタスクに登録してスケジュール起動してます。 板orスレ違いごめんなさい。 >>348 ffmpeg でなく lame で同様のことをするには? EcoDeco使うって手もあるかな どうでも良いけどコレで48.000Hzで抜き出したらアップサンプリングになんのかな? なんないかw >>349 lame単体でっていう意味ですか?lameでストリーミングデータを入力ファイルに指定できるのか分かりませんが、おそらく何らかのフロントエンドソフトを使わないと、lame単体では無理な気がします。 >>348 は、ffmpegでlameライブラリを使用して、rtmpプロトコルで配信されているflvをmp3にエンコードしています。 >>351 lame は、単なる mp3 encoder ですよ。分かってます? >>353 >>351 氏、おっと失礼。m(_ _)m >>349 宛でした しもた。。。 /ニYニヽ (ヽ /( ゚ )( ゚ )ヽ /) (((i ) /::::⌒`´⌒::::\ ( i))) でっていうwwwwwwwwwwwwwww /∠_| ,-)___(-,|_ゝ \ ( ___、 |-┬-| ,__ ) | `ー'´ /´ | / ffmpeg -i src.m2v -i src.aac -target ntsc-dvd -b 3800000 -ab 192000 -acodec ac3 dst.mpg みたいに -target ntsc-dvd でHD→SD変換すると色空間がBT.709のままだったのですが、 BT.601に変換するオプションはありませんか? ffmpegで動画からmp3を無劣化で抽出したらけっこう速い? 今日、0.5.1をビルドしようと思うんだけど、 これはenableしとけよ!っていうcodecってどれ? libmp3lameだけは入れるんだけど、他はどうしようかと。 >>363 ありがとう。今日3回目の configure && make 、行きます。 DE できるものと それに必要なライブラリの対応表みたいなのって、 どこかにあるのかなー。 ffserver+ffmpeg でasfのストリーム配信やろうとしてるんですけど wmpで見られません。なぜかvlcだと見られます。 なんでか教えろ >>365 ここはLinux板なのでwmp使ってる人は居ないかと Windows版でffserver+ffmpegならLinux版で聞けと言われたりしてなw read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる