スポンサードリンク

2008年07月31日

携帯動画変換君で、P905i用x264動画

x264動画変換用の、携帯動画変換君のTranscoding.ini設定です。
P905iで再生できるのを確認しました。
microSDへの保存は、こちらの記事を参考にしてください。

Title=【動画】x264 320x240 768kbps 29.97fps AAC音声 128kbps 48kHz
Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -threads 2 -r 30000/1001 -vcodec libx264 -b 768k -s 320x240 -me_method umh -g 150 -qcomp 0.7 -qblur 0.5 -qmin 10 -qmax 51 -qdiff 4 -subq 6 -me_range 16 -coder vlc -sc_threshold 50 -flags loop -flags2 mixed_refs -keyint_min 30 -rc_eq "blurCplx^(1-qComp)" -cmp chroma -level 30 -refs 3 -complexityblur 20 -deblockalpha 0 -deblockbeta 0 -i_qfactor 0.714286 -acodec libfaac -profile aac_low -vol 256 -ac 2 -ar 48000 -ab 128k -f 3gp "<%OutputFile%>.3gp""
posted by あべちん at 02:55| Comment(0) | TrackBack(0) | 携帯動画変換君

2007年12月15日

ConvertMovieToFile:NewMovieFromFile Error

FFmpeg rev.11142あたりから、携帯動画変換君でこんなエラーが出るようになりました。
rev.11141までは出ていなかったエラーです。

A>ConvertMovieToFile:NewMovieFromFile Error
A>Dialog : 処理実行中にエラーが発生しました [Error:-8971]

rev.11141からrev.11142への変更の中に原因があるらしい?
ということで、以下のように修正したところ、エラーが出なくなりました。

2008/1/13
ひでぼさんの情報より、修正方法を追記しました。
修正方法は2パターンありますので、どちらか一方のみ適用してみてください。
ここに置いてあるFFmpeg rev.11436以降は、(2)の修正を適用しています。

(1)
libavcodec/opt.c 229行目(av_get_string関数中)の、変換文字を"0x%08X"から"%d"に変更します。
修正前) case FF_OPT_TYPE_FLAGS: snprintf(buf, buf_len, "0x%08X",*(int *)dst);break;
修正後) case FF_OPT_TYPE_FLAGS: snprintf(buf, buf_len, "%d" , *(int *)dst);break;

(2)
libavcodec/opt.c 182行目の後(av_set_string関数中)に、文字列の先頭が"0x"の時の処理を追加します。
if (cmd=='+') d= av_get_int(obj, name, NULL) | (int64_t)d;
else if(cmd=='-') d= av_get_int(obj, name, NULL) &~(int64_t)d;
else if(buf[0] == '0' && buf[1] == 'x') d = strtoul(buf, NULL, 16);

エラーの原因を解明できたわけではなく、差分を取って、エラーが出る前に戻しただけです。
ご参考まで。
posted by あべちん at 21:36| Comment(3) | TrackBack(0) | 携帯動画変換君

2007年12月09日

携帯動画変換君でWindowsMediaEncoderを使おう

P905i買っちゃいましたよ!
WMV9動画再生に対応してます!!
それなのにそれなのに、FFmpegはWMV9(WMV3)のデコードのみで、エンコードに対応してない!!!
ということで、携帯動画変換君でWindowsMediaEncoderを使ってみましょう。
WindowsMediaEncoderは先にインストールしておいてください。

映像 WMV9 320x240、29.97fps、VBR 平均ビットーレート800kbps
音声 WMA9 VBR 128kbps、44.1Khz、ステレオ2ch
の場合、以下のようになります。

Title=【動画】WME 320x240 800kbps 29.97fps 128kbps 44.1kHz
Command0="cscript "C:\Program Files\Windows Media Components\Encoder\WMCmd.vbs" -input "<%InputFile%>" -output "<%OutputFile%>" -v_mode 3 -v_bitrate 800000 -v_width 320 -v_height 240 -v_framerate 29.97 -a_mode 3 -a_setting 128_44_2"


YouTube、DailymotionのFLV動画など、WMEで直接読み込めない場合は、Huffyuv + WAVの中間ファイルを作ってからエンコードします。
無圧縮avi(-vcodec rawvideo)だと中間ファイルが巨大になります。
もしかして、Huffyuvはffdshowも必要かも?

Title=【動画】中間ファイル有り WME 320x240 800kbps 29.97fps 128kbps 44.1kHz
Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -vcodec huffyuv -acodec pcm_s16le "<%TemporaryFile%>.avi""
Command1="cscript "C:\Program Files\Windows Media Components\Encoder\WMCmd.vbs" -input "<%TemporaryFile%>.avi" -output "<%OutputFile%>" -v_mode 3 -v_bitrate 800000 -v_width 320 -v_height 240 -v_framerate 29.97 -a_mode 3 -a_setting 128_44_2"
Command2="rm "<%TemporaryFile%>.avi""


コマンドラインオプションは、
C:\Program Files\Windows Media Components\Encoder\WMEncUtil.chm
高度なエンコード手法 -> コマンド ライン オプションを使う
に、詳しく書かれています。

映像のビットレートは1000kbpsでも再生できました。
あまりビットレートを高くしても、ファイルサイズが大きくなるだけで、800kbpsでも、携帯の画面で見た感じは大して変わらないと思います。
YouTubeやDailymotionの動画などは、4〜500kbps位でも良いかもしれません。
音も、YouTubeなら64kbps(-a_setting 64_44_2)、Dailymotionなら96kbps(-a_setting 96_44_2)で良いと思います。

WindowsMediaEncoderからだとバッチエンコードがめんどくさいですが、一度設定しておけば、携帯動画変換君の方が簡単なので、おすすめです。
posted by あべちん at 02:58| Comment(0) | TrackBack(0) | 携帯動画変換君