エンコードソフト ffmpeg のスレ
公式サイト http://ffmpeg.org/ どうもこれでエンコードしたら、ファイルサイズがでかくなるんだがorz >>513 どうもlibx264の方でスレッドを増やしたときにそんなこともするらしい。 >>514 513はそんな事ができるLinuxはないという意味で言ってると思うの ffmpegって、『Quick Sync Video』は使えるんでしょうか??? 先頭から指定したバイト数だけ読み飛ばすオプションって無いですよね? ddか何かで先頭を読み飛ばしたデータをパイプすればいいじゃん ffmpegでtsファイルをmp4に変換してるんだけど、 動画が途中から2カ国語放送になる場合、 -acodec copy -newaudio -map 0.0 -map 0.1 -map 0.2 オプションを付けると Codec type mismatch for mapping #0.2 -> #0.2 とか言われるのですが、どうすればいいですか? ちなみに、2カ国語になった辺りを、 dd bs=188b で切り取って本体の頭に付けたら、正しく変換できませんでした。 ffmpeg で動画から微速度撮影ぽい動画を作る際今は以下のような感じで一旦画像にしてから動画に作り直しています 一気に動画から動画に変換する方法はないでしょうか? # 動画から秒1枚抜き出して画像に ffmpeg -i DOUGA.MP4 -s 1280x720 -f image2 -v codec mjpeg -r 1 "%06d.jpg" # 画像から動画に ffmpeg -r 24 -i ./%06d.jpg -vcodec mjpeg -sameq DOUGA2.avi どーしてもffmpegじゃないとダメなの? avisynthなら簡単にできるんだけど >>524 AviSynth 確認して見ましたがWindows用のようでWine でもうまく動作しないようです ffmpeg でないと駄目という事はないんですが手元のWindows環境は貧弱なのでLinux で処理したいと思っています 俺はUbuntu+wine1.3でAviSynth使ってるけど 質問です -bt <int> 映像ビットレートの変動許容幅 (in bits/s)。デフォルト=4000kbits/s * x264 の場合は、btの値/bの値 が -ratetol オプションの値として渡される。 デフォルトだとratetol=4000k/200k=20.0 この説明の通りにratetolの値を明示するには、たった-b 256kに対して-bt -5120kもの値が 必要と言う事になりますがこれは正しいでしょうか? また-btに対して-maxrateを制限する時は割合でどの程度(例えば-btの値の1.5倍や2倍等) 指定するのが妥当でしょうか? FFMPEGを名前付きパイプでデータもらおうかと思ったんだが どうも途中でシークを戻しているらしくて、正しいファイルにならず100バイトほど大きくなる上に再生出来ない。 マニュアルにも途中でシークを戻すフォーマットがあると書いてあるのでそれなのだと思う。 で、ストリーミングに向いたフォーマットは何がいいだろうか?今はlibx264&MP4でやっているのだけど やりたいことはトランスコードです。おすすめの設定かノウハウ等ありましたらご教授下さい。。 libx264&mpeg2tsでtcpに書き出してるけど特に問題ないよ。 つーかストリーミングならtsかflvだわな mp4でストリーミングって、まだ仕様が固まってないんじゃなかったっけ? mp4だとmoovの後にmoofで区切って出していければいいんだが、対応しているのって殆ど無いよね。 >>530 531 532 ありがとうございます! とりあえずtsでやってみます。 >>533 ffmpeg 用 Micosoft 版 Smooth Streaming 対応パッチなんてのもあるよ。 "ffmpegのオプションは手前から順次実行される"って聞いたんでリサイズ最後に持ってきて思ったんですが、 "-nr"オプションって複数実行出来るんでしょうか? 例えば "元のサイズで"-nr"まで処理→本命のサイズにリサイズ"って作業を "元のサイズで"-nr"まで処理→「アスペクト比率維持しての中間サイズ」にリサイズ→再度"-nr"処理 →本命のサイズにリサイズ"って作業に変更するのは無意味ですか? もしくは全ての変換処理が始まる前に意図的にディノイズを全体に掛けるような使い方は 流石に無理でしょうか? 自分の所で試すとファイルサイズと平均レートに多少変化がある見たいなんですがどうでしょうか? 気になるか? まあ、お前ごときどうせ株なんか知らんだろうし、どうにも出来んし説明してやろう。 崩壊してんのは、株取引のほうだ。 すでに年金すら韓銀砲で溶けてる。今なお溶かし続けてる。 後、多分だが金持ってる外国人や富裕層はとっくに韓国から亡命(まあ似たようなもん)してる どこまで持ちこたえるか知らんが、ウォンは貧弱だから安くなりすぎても、高くなりすぎても死亡 すると紙クズと化したウォンを、ハゲタカファンドに捨て値でおもちゃにされてゲームオーバーだ そしたらまず銀行が閉鎖されて、預金が降ろせなくなるだろうな。 そこからがパニックの引き金になるだろ、あとは想像に任せる。まあしたくもないくらい地獄だろうが 韓国がIMF入り以外で、自力で浮き上がろうとしたら、これら問題をどうにかする必要があるのだが 首脳陣がそこまで脳ミソ使ってるのかまでは、知らん。 あとそうなったらおそらく円持ってる在日強制召還。これはお前らの問題だな、日本人?復興にいそがしいからまた今度な これくらいだな、まあ後は勝手に調べてくれ。 -bt/-bのさじ加減て実数でいくつまで対応?相場は1〜4て言うけどさ ffmpegって重複するオプションでも前から順番に処理するように出来ない?試したい事あんだけど -deadzoneを-trellis 2の補佐に使えるようにならないですかね -crfだって-bの指定を多少融通してくれるじゃないですか ソフトウェア板の方では答えてもらえなかったので質問させてください オリジナルと異なるfpsで変換する時の間引き方に関して要望を出したいんですが 何処に要望を出せば良いでしょうか? >>543 メーラーの調子が悪いのかサーバーの問題なのか連絡が取れませんでした… でも助かりました、有難うございました ここ数日のgitはffaacが使い物にならない core吐いて死ぬレベル ソフトウェア板の方では答えてもらえなかったので質問させてください ffmpegを使って MP4等の動画ファイルにBGMを入れたいのですが可能でしょうか? >>546 ffmpegって編集ソフトじゃなくて変換ソフトなんで本来的にはちょっと違うんだが 無理やりやればできんこともない。 例えば、時間的長さが同じ動画ファイル movie.mp4 と 音声ファイルbgm.mp3があったら $ffmpeg -i movie.mp4 -i bgm.mp3 out.mp4 で、出力されたout.mp4ではmovie.mp4の動画に、bgm.mp3の音声が合成される。 (まぁここでビットレートとかは考えてないので他のオプションで調整は必要だが) X11grabならぬDirectXgrabができるようになればDxtoryもXsplitもなしで ffmpegひとつでPCゲームの配信ができるようになるんだが フォーラムに書き込んだらこれが実装される可能性がでてきたりするんだろうか フォーラム? MLとIRCしかないぞ あと開発者にはWindowsユーザーは一人もいないから、自分で書かないとまず無理よ 「DirectXgrab」を実装しようとしたらLFSできるくらいの知識がないと話にならなさそうだな 簡単ならとっくの昔に誰かがゲーム配信用ffmpeg+それ用のフロントエンドを作ってるだろうし GPUを使えば、エンコードが 圧倒的に速くなるわけだが、 ffmpegのGPU対応をどうなってるの? あんまりやる気が感じられないんだが。 優先度、最重要なのに cross platformがウリなんだから、そう簡単にできんだろう。 ■ エンコードジョブをキューに追加するコマンド(負荷80%以下で実行開始) $ at -q b -f encode-batch.sh NOW x264がようやくOpenCLに手を出し始めたが GPGPUってそこまで開発が難しいものなのだろうか ffmpegを使ってバッチにて変換を行っています。 一部の録画にて「720x480」を含むデータの変換でコケテしまいます。 何か良い回避方法はないものでしょうか??? -y -threads 2 -i "*****.ts" -vcodec libx264 -aspect 16:9 -s 720x480 -b 1152k -maxrate 1536k "*****.mp4" >>556 -f mp4 をつけてみる。 あとエラーメッセージをほぼ完全に晒さないとレスがつかないよ。 >>557 何を書けばいいかよく判らないけど、とりあえず。 PES packet size mismatch [mpeg2video @ 024F81E0] ac-tex damaged at 24 29 [mpeg2video @ 024F81E0] Warning MVs not available [mpeg2video @ 024F81E0] concealing 45 DC, 45 AC, 45 MV errors [aac @ 024F5D60] Input buffer exhausted before END element found Error while decoding stream #0:1: Error number -1 occurred frame= 204 fps=4.1 q=-1.0 Lsize= 29453kB time=6.81 bitrate=35446.7kb =10 drop=0 video:864kB audio:28252kB subtitle:0 global headers:0kB muxing overhead % 多分この辺りだと思うって所を抜粋してみました。 >>558 ファイルはできてると思うけど動画と音声のサイズが変なのと、ffmpeg のバージョンが古いように見える。 以下は約24分半のエンコード結果の例 frame=44021 fps= 8 q=-1.0 Lsize= 305418kB time=00:24:28.43 bitrate=1703.8kbits/s dup=13 drop=0 video:286587kB audio:17413kB global headers:0kB muxing overhead 0.466310% バージョン: ffmpeg version 0.10.2 Copyright (c) 2000-2012 the FFmpeg developers built on Mar 20 2012 04:07:59 with gcc 4.6.0 20110603 (Red Hat 4.6.0-10) >>558 最新版gitバージョンで再試験 ディストリビューション添付版なんてカビが生えてるバージョン使うんじゃないぞ 0.10系の最新版は0.10.4だ 0,11系も出てるし、git試してみてもいいんでない CUDA/OpenCLはGimp,Handbrake,VLCくらいしかOSSで対応してるのはないらしい それほどまでに難しい代物なのか。売り物の動画を扱うソフトは皆対応してるのに >>562 MPlayerでも今まで何度かパッチは送られてるんだけど、 コミッタが気に入らないから放置プレイ って何度もやってる VLCでのVAAPI対応はイマイチ デインタレース処理をVAAPIでやってくれないから片手落ち 配信は非力なlinuxでffserverで行い、エンコードは高性能なwindowsからFFMPEG_Launcherで行うということはできますか? 可能。 linux<->win間をTCPで繋げればよろし カメラから連続して出力された画像を、リアルタイムにffmpegで動画にしたいんですけど、 カメラが画像を出力する速度が明るさによって変動する(9〜30FPS)場合、ffmpeg側のオプションで変動FPSに対応することできますか? Win98(Pentium MMXなし)なマシンでH264の動画をデコードするために、このマシンで動作するffmpegをビルドするにはどうしたらいいかヒントを教えてください。 逆に質問 そのマシンであと何十年戦うつもりですか? MinGW-5.1.6(GCC-3.4.5)とmsys-1.0.10(sh.exeをbashのものと入れ替え)をインストール、ffmpeg-0.5のソースを展開。 msys上で ./configure --enable-w32threads --cpu=i586 --disable-mmx --disable-sse --enable-memalign-hack 後 各サブディレクトリでmakeしたあと親ディレクトリでmake、でできた。 あとWin98では、ffmpegでrawvideoにデコードしたaviファイル再生にはyuvcodecsが必要でした。 ffmpegであるflvファイルから、映像をrawvideoコーデックのaviファイルに、音声をwavファイルに同時に切り出したいんだけど、 ffmpeg -i hoge.flv -f avi -vcodec rawvideo hoge.avi hoge.wav とすると「音声付きの」aviファイルとwavファイルが出来てしまうし、-anオプションを使うとwavファイルに含まれるストリームがないといってエラーになってしまう。 なにかいい方法はないかな? ubuntu12.04を入れなおしてffmpeg最新版をgitからmake installかけて入れたのはいいけど、ffmpeg-phpって使えなくなったの? phpize->configureからのmakeで ffmpeg-php.c:94:5: warning: implicit declaration of function 'avcodec_init' [-Wimplicit-function-declaration] なんてエラーが出てくるし、ぐぐったら「ffmpeg-phpとかクソ古いしそんなの使わないでexec叩いて結果持ってこいよバーカ」みたいな記事しか見つからないんだが。 ffmpeg version 1.2.1 ×ts -> ts にシェイプする速度が残念なくらいにゆっくりになった。 ×mp4 640x360 25fps でのエンコードでセグメンテーション違反でたまに落ちる。 ◎mp4 へのエンコードは1〜2割速くなった。 >>553 ■ エンコードジョブをキューに追加するコマンド $ echo "encode-script.sh hogehoge.ts"|at -q b now ttp://ffmpeg.org/ffmpeg.html#Optionsを調べたのですがファイルの種類の変換はあったのですが、圧縮方法は見つけれませんでした。 hoge.mp4(300MB)ぐらいのファイルがあり、それを音声の質はなるべく落とさずにサイズを出来れば100~50MBぐらいに圧縮したいと思っています。 中の映像はパワーポイントのスライドなので多少質が下がっても読めれば問題ないのですが。 ffmpeg -i input.mp4 -vcodec msmpeg4v2 -acodec copy output.mp4 を見つけたのですが、音声の質などはどうなんでしょうか? >>576 そのコマンドだと音声は変わらない モノラルにするとか、ビットレート落とすとかしないと >>576 ffmpeg -i hoge.mp4 の結果を晒してくれ。 >>577 なるほど。ビットレードですか。調べてみます。 >>578 了解です。 ffmpeg version 0.8.6-4:0.8.6-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav developers built on Apr 2 2013 17:00:59 with gcc 4.6.3 *** THIS PROGRAM IS DEPRECATED *** This program is only provided for compatibility and will be removed in a future release. Please use avconv instead. Seems stream 1 codec frame rate differs from container frame rate: 1200.00 (1200/1) -> 30.00 (30/1) Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '2013_02_20.mp4': Metadata: major_brand : mp42 minor_version : 1 compatible_brands: mp42avc1 creation_time : 2013-02-20 07:22:40 Duration: NY:AN:NY.AN, start: 0.000000, bitrate: 425 kb/s Stream #0.0(eng): Audio: aac, 32000 Hz, mono, s16, 63 kb/s Metadata: creation_time : 2013-02-20 07:22:40 Stream #0.1(eng): Video: h264 (Main), yuv420p, 1024x768, 360 kb/s, 3.02 fps, 30 tbr, 600 tbn, 1200 tbc Metadata: creation_time : 2013-02-20 07:22:40 At least one output file must be specified アスペクト比は、オリジナルのままなら適宜修正して下さい。 ffmpeg -i hoge.mp4 -f mp4 -vcodec libx264 -vsync 1 -map 0:1 -r 2 -aspect 16:9 -s 1024x576 -vb 256k -bufsize 5000k -bt 1024k -maxrate 3M -map 0:0,0:1 -acodec aac -strict experimental -ac 1 -ar 32000 -ab 32000 -y shaped-hoge.mp4 -vb 256k を -vb 43k に修正して下さい。 >>581 ありがとうございます。試してみます。 後で結果報告したいと思います。 582です。 圧縮された動画の結果は良好です。ありがとうございました。 >>584 遅くなってすみません。 出力されたファイルは約六分の一とかなり小さくなっています。 これで容量がなんとか確保出来そうです。ありがとうございます。 画質的にWindowsのAviUtlとかプラグイン山盛りのツールより 綺麗にだせるの? 質問です 前後録画のドライブレコーダーを買ったのですが 前後別々のmp4ファイルに録画されています これを前後の動画を同時に見れるように1本結合したいと思っています 前の動画が front.mp4 (640x480)で音声有り 後ろの動画が rear.mp4 (320x240)で音声無し として 940x540(16:9)にして、前は上下30pxずつ後ろは110pxずつ 黒帯をつけて、左側を前の動画、右側を後ろの動画にしようと思いました で、まず以下のように 2つの動画に変換しました ffmpeg -i front.mp4 -vf "pad=0:540:0:30" -acodc copy tmp1.mp4 ffmpeg -i rear.mp4 -vf "pad=0:540:0:110" -an tmp2.mp4 これを左側にtmp1、右側にtmp2と結合したいのですが やり方がわからないので教えてください もし、これらを一発でできるような方法があれば それを教えていただけると助かります ステレオ動画みたいに異なる動画が左右同時再生されているものを作りたいのかな そういう編集みたいなことは↑のaviutlなんかがやりやすいはずだけど ttps://trac.ffmpeg.org/wiki/vfxEncodingGuide#Monovs.Stereo この辺り関係ないかな? mapを使うとマルチトラックになるので 確かにステレオ動画にはなるけど 動画の結合とは異なる感じかな 自己解決できたくさいので報告です 左側映像はそのままで、右側映像を左を乗せれるように配置 ffmpeg -i rear.mp4 -vf "pad=960:540:640:150" -an tmp1.mp4 そこに左側映像を overlay ffmpeg -i tmp1.mp4 -i front.mp4 -filter_complex "overlay=0:30" out.mp4 これで行けました 何かもっとうまいやり方がありそうですが… 方法はそれでいいけど、エンコは一回にした方がいいでしょ 中間ファイルを無劣化にするのも一つのやり方だけど ここにコマンド一回でのやり方が色々載ってる http://ch.nicovideo.jp/nico-lab/blomaga/ar5633 あと、avisynthで映像を作って、ffmpegに食わせるって方法もあるよ >>593 ありがと 実はソコは見たんだけど意味がちんぷんかんぷんだった avisynthも理解できずに苦しんでます おはようございます! エンコード後のファイル名に、フレームレートの値を入れるには、 どのようなコマンドを記述したらよいですか? ○○ [29.97fps].mp4 みたいにしたいの。 >>596 自動判別して、一括リネームする方法があるの?? >>597 >>595 の文章にはファイル名を変更したいって事しか書かれて無いので rename コマンドか、mv コマンドで好きに変更しろって回答にしかならんだろ 自動判別とか、一括リネームなんてどこから沸いて出たわけ? 自動判別したいのであれば、例えば↓でとあるファイルのfpsはわかるよね ffmpeg -i nantoka.mp4 2>&1 | perl -nle 'print $1 if(/([\d\.]+) fps/);' 後は一括リネームするスクリプトでも組めばいいんじゃないかな >>598 ありがとうございますー 自分には勉強する必要がありそうなので、 出直してきます。 ffmpegでラジコを受信してffplayで音を出していますが、ピッチを変えるオプションが見つかりません。 mplayerで言うところの-speedのオプションに該当するものはないんでしょうか。 よろしくおねがいします。 くだ質で、undefined 拡張子を持つファイル(動画)について質問し ffmpeg に放り込めば元ファイルの拡張子がわかるんじゃないかと アイデアをもらったのですが どのようなオプションをつければ良いでしょうか >>607 ffmpeg -i ファイル名 mediainfoの方がわかりやすいと思うけど。 ここ、ffmpeg のスレだから、windows の人かも知れないけど、 linux 板だから、file コマンドの方が楽だよな。 $ file file-name or $ file --mime-type file-name とかのほうが、シンプルで read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる