ffmpeg動画エンコードで、少しつまずく

最新のffmpegでは-timestamp が廃止予定になっており
-timestamp オプションを入れるとエラーがでます。なので
-timestamp "<%TimeStamp%>"
-metadata creation_time="<%TimeStamp%>" に書き換えて下さい。

ちょっと、動画エンコードの話。

当方は、動画エンコードに携帯動画変換君を使用している。
勿論、新しい ffmpeg に入れ替えて、Transcoding.ini を弄りまくっている。
なので、品質や圧縮率は良いけれど、処理負荷は重く変換時間も長い。

ただ最近になって、逆に処理が軽くて、変換時間も短い設定に興味を持つようになった。

そういう訳で、久々に当方が何年か前に書いたシンプルな設定を元に
軽い設定を作ろうとした訳なのだが…。

あれ?エラーを吐く

Error while opening encoder for output stream #0.0 - maybe incorrect parameters such as bit_rate, rate, width or height
A>Dialog : 処理実行中にエラーが発生しました [Error:1]
T>Finished.

エラー番号を見た瞬間、ある程度原因は推測できる
この Error 1 が出るときは、パラメータの指定が間違っている場合が殆ど。

初めて、色々と設定を弄った時、何度もこのエラーを見たものだ。
それに、英文メッセージにもその事がそのまんま書かれているしね。

ところが、設定をいくら見返しても、構文の間違いを見つけることができない…。

最近、より新しいffmpegを差し替えたので
もしかして、オプションの一部の指定方法が変わった?とか思って
オプションを削除しては試し、を繰り返すも、Error 1 を返される。

あれっ?おかしい。おかしいぞ、これ…。
そもそも、こんなシンプルな構成の設定でエラーなんぞ吐く訳がない…

試しに、いつも使っているオプション弄りまくり設定でエンコード。
するとすんなり、動画変換が始まる。

何故?もしかして足りないオプションがあるのかな?
と思いつつ、いくつかのオプションを追加して繰り返していると

お、おぉ、動いた動いた。
以下のオプションを追加したら、解決。

-qmin 10 -qmax 51 -qdiff 8 -i_qfactor 1.40 -qcomp 0.7

そこで、はっと気が付く。
これ、もしかして、特定のオプションで 5つ以上 ffmpeg のデフォルト値だと
エラー返されるってやつじゃなかったっけ?と思い出す。

x264のエンコードでエラー(Error while opening encoder for output stream #0.0) お気に入りの動画を携帯で見よう

ええ、そうでした。その通り、ちゃんと一度目を通した記事でしたが
すっかりこの事を忘れてましたよ…とほほ。

そういうわけで、修正後の設定。色付けしてある部分が追加した部分です。
あ、因みに、この設定はPSP用の設定。
neroAacEnc.exe や MP4Box.exe を事前に変換君のcoresフォルダに入れておく必要があります。
[Item41]
Title=PSP Setting [Main Profile Level 2.1]
Command0=""<%AppPath%>\cores\ffmpeg" -threads 1 -y -i "<%InputFile%>" -timestamp "<%TimeStamp%>" -flags2 +fastpskip -vcodec libx264 -coder 1 -bufsize 2048k -partitions +parti4x4+partp8x8 -subq 7 -g 300 -aspect 16:9 -s 480x272 -r 30000/1001 -qmin 10 -qmax 51 -qdiff 8 -i_qfactor 1.40 -qcomp 0.7 -crf 20 -an -f mp4 -level 21 "<%TemporaryFile%>.mp4""
Command1=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -vn -acodec pcm_s16le -ac 2 -ar 48000 -vol 256 -f wav "<%TemporaryFile%>.wav""
Command2=""<%AppPath%>\cores\neroAacEnc" -q 0.4 -lc -if "<%TemporaryFile%>.wav" -of "<%TemporaryFile%>.m4a""
Command3=""<%AppPath%>\cores\MP4Box" -add "<%TemporaryFile%>.mp4" -add "<%TemporaryFile%>.m4a" -new "<%OutputFile%>.mp4""
Command4=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -f image2 -ss 5 -vframes 1 -s 160x120 -an "<%OutputFile%>.jpg""
Command5="cmd /c "del "<%TemporaryFile%>*.*"""

その他の関連記事

広告

ffmpeg動画エンコードで、少しつまずく」への2件のフィードバック

  1. 記事を拝見させていただきMP4BOXを使用し圧縮してみました。
    Compressed63%程まで行きました、
    この数値を70~80程度まで持っていきたいのですがどうしたらよいでしょうか?
    bufsizeをいじってみましたがあまり変わらなかったようなので・・・orz

    • コメントありがとうございます。

      一応、試してみましたが、こちらの環境では正常に変換が終了しました。
      63%程まで行くという事は、63%程度のまま変換が停止してしまったという事でしょうか?

      こういった場合 QuickTime をインストールし直すと改善する事があるそうです。

      また、携帯動画変換君に付属している README.txt を読んでみると
      解決策が載っているかも知れません。

      私の環境では、そのような経験が一度もなく
      こちらではこれ以上の事は分かりません…。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中