質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
FFmpeg

FFmpegは、動画と音声を交換できるフリーソフトウェアです。UNIX系OSから派生した、MS-DOSから操作するコマンドラインツールです。libavcodecやlibavformat、libswscale、libavfilterなどを含みます。ライセンスは、コンパイルの際のオプションによりLGPLもしくはGPLに決定されます。対応コーデックや使用できるオプションが多く、幅広く利用されています。

Q&A

解決済

1回答

6602閲覧

ffmpeg/libx264のエラーが出る

smnsmn

総合スコア175

FFmpeg

FFmpegは、動画と音声を交換できるフリーソフトウェアです。UNIX系OSから派生した、MS-DOSから操作するコマンドラインツールです。libavcodecやlibavformat、libswscale、libavfilterなどを含みます。ライセンスは、コンパイルの際のオプションによりLGPLもしくはGPLに決定されます。対応コーデックや使用できるオプションが多く、幅広く利用されています。

0グッド

0クリップ

投稿2016/03/21 13:12

編集2016/03/21 13:50

ffmpeg3.0です。
エンコーダーで-vcodec libx264を指定しています。

下記のようなエラーが出るため、プリセットファイルを修正したいのですが、
少し触ってみても、解決ができませんでした。
wpredが使えない?や指定ができないような内容だと思うのですが・・・

エラー内容

[libx264 @ 0x3068020] [Eval @ 0x7ffcf5182ba0] Undefined constant or missing '(' in 'wpred' [libx264 @ 0x3068020] Unable to parse option value "wpred-dct8x8" [libx264 @ 0x3068020] Error setting option flags2 to value -wpred-dct8x8.

libx264-default.ffpresetの中身

coder=1 flags=+loop cmp=+chroma partitions=+parti8x8+parti4x4+partp8x8+partb8x8 me_method=hex subq=7 me_range=16 g=250 keyint_min=25 sc_threshold=40 i_qfactor=0.71 b_strategy=1 qcomp=0.6 qmin=10 qmax=51 qdiff=4 bf=3 refs=3 directpred=1 trellis=1 flags2=+mixed_refs+wpred+dct8x8+fastpskip wpredp=2

解決策・修正方法がありましたら、ご教授頂けませんでしょうか。
何卒、よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

2012年リリースの FFmpeg 1.0 以降では、libx264へのflags2オプション指定方式は全て廃止されたようです。
(FFmpegもx264も、バージョンアップに伴う破壊的変更が多いプロジェクトなので、古い情報がそのまま適用できないことが多々ありますね。)

flags2=+mixed_refs+wpred+dct8x8+fastpskip

FFmpeg 3.0/libx264 で対応するオプションは下記と思われます。

  • -flags2 +mixed_refs-mixed-refs 1
  • -flags2 +wpred-weightb 1
  • -flags2 +dct8x8-8x8dct 1
  • -flags2 +fastpskip-fast-pskip 1

投稿2016/03/22 02:01

編集2016/03/22 09:39
yohhoy

総合スコア6191

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

smnsmn

2016/03/22 03:40

ご回答ありがとうございます! どこの情報を頼りにしてもエラーが治らず本当に難しいです・・・・。 回答が頂けて本当に嬉しいです。 上記のオプション指定方式が廃止になったということで、 libx264-default.ffpresetから、 flags2=+mixed_refs+wpred+dct8x8+fastpskipの記述を削除し、 コマンドのオプションに上記のコマンドを追加したところ、 [libx264 @ 0x396cfe0] Unable to parse option value "-weightb" as boolean [libx264 @ 0x396cfe0] Error setting option mixed-refs to value -weightb となってしまいました。 実行したコマンドは /root/bin/ffmpeg -y -threads 3 -i /home/hoge -s vga -b:v 1024k -vcodec libx264 -mixed-refs -weightb -8x8dct -fast-pskip -vpre libx264-fastfirstpass -acodec libfdk_aac -ac 1 -ar 22050 -ab 32k /home/hoge.mp4 です。 -weightbを取り除いたところ、 [NULL @ 0x3941800] Unable to find a suitable output format for 'libx264-fastfirstpass' libx264-fastfirstpass: Invalid argument となってしまいました。 もし解決策ございましたら、ご教授頂けませんでしょうか。;;;
yohhoy

2016/03/22 09:42

-mixed-refs/-weightb/-8x8dct/-fast-pskipはbooleanタイプだったので、オプション名を書くだけと思っていたのですが、どうも明示的に 1 を指定する必要があるようです。エラーメッセージを読むと、-weightb部分を-mixed-refsオプションへの設定値とみなしているようですね。 また-vpreオプションに指定するのは、fastfirstpassだけではないでしょうか?
smnsmn

2016/03/22 14:18 編集

なるほどです。 ありがとうございます!!m(__)m /root/bin/ffmpeg -y -threads 3 -i /home/hoge -s vga -b:v 0k -vcodec libx264 -mixed-refs -weightb 1 -8x8dct -fast-pskip -vpre fastfirstpass -acodec libfdk_aac -ac 1 -ar 22050 -ab 32k /home/hoge.mp4 上記のように変更しましたが、 -weightbの指定がやはり間違っているようです。汗 -weightb 1 -weightb1 -weightb=1 色々試しましたがダメでした。 [NULL @ 0x36f6d40] Unable to find a suitable output format for '1' 1: Invalid argument だったり [libx264 @ 0x34969c0] Unable to parse option value "-weightb1" as boolean [libx264 @ 0x34969c0] Error setting option mixed-refs to value -weightb1. fastfirstpassプリセットについても、プリセット名の指定が間違っていたのですね・・・ エラーの件、もしお分かりでしたらお答え頂けますと大変助かります。 よろしくお願い致します。
yohhoy

2016/03/22 14:15 編集

4パラメータとも"1"指定が必要ですから、「-mixed-refs 1 -weightb 1 -8x8dct 1 -fast-pskip 1」ですね。 全部書くと: /root/bin/ffmpeg -y -threads 3 -i /home/hoge -s vga -b:v 0k -vcodec libx264 -mixed-refs 1 -weightb 1 -8x8dct 1 -fast-pskip 1 -vpre fastfirstpass -acodec libfdk_aac -ac 1 -ar 22050 -ab 32k /home/hoge.mp4
smnsmn

2016/03/22 14:23

お早い回答、本当にありがとうございます。 上記実行しましたところ、 [libx264 @ 0x3273f20] [Eval @ 0x7ffddf684620] Undefined constant or missing '(' in 'bpyramid' [libx264 @ 0x3273f20] Unable to parse option value "bpyramid-wpred-mixed_refs-dct8x8+fastpskip" [libx264 @ 0x3273f20] Error setting option flags2 to value -bpyramid-wpred-mixed_refs-dct8x8+fastpskip. となりました。 bpyramidなんてプリセットの記述には見当たらないのですが・・・・ 一体何なんでしょうか・・・・ 何度も、申し訳ありません。
yohhoy

2016/03/23 01:24

「-vpre fastfirstpass」指定で下記プリセットが読み込まれますから、「flags2=-bpyramid-wpred-mixed_refs-dct8x8+fastpskip」部分がエラーになっていると思われます。 https://github.com/joeyblake/FFmpeg-Presets/blob/master/libx264-fastfirstpass.ffpreset というより、これらのプリセット群はFFmpeg 3.0では使い物になりませんから、全て削除した方がトラブルにならずに済むと思いますよ。
smnsmn

2016/03/23 13:36

ご回答ありがとうございました。 ご指摘のとおり、使用しているプリセットはやめ、オプションなどを使いたいと思います。 多々ご教授頂きありがとうございました。m(__)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問