1.初心者だって変換君でffmpegの最新を使いたい

るh264内容をよくわかっていなくとも、動画変換君のお手軽さは知っている。

ffmpegで最新のものでなければ、HD画質のファイルを高画質のままでmp4には変換できません。wmvも同様です。

だけど英文は理解できないし、うんちくの書いてあるHPではコピペしてもなにか動かないし、聞こうとしてもトーシロは理解できなければ使うな的なオーラがでています。

それはそれでつらいので、一応簡単にwindows版のやりかたを説明しておきます。

1.携帯動画変換君をDLしてインストール

無難に窓の杜からとってきましょう

http://www.forest.impress.co.jp/lib/home/ktai/ktaipic/keitaidouga.html

セットアップ時には適当な環境を選択して(PSPとか)transcodeing.iniとかを自動生成させます。

2.ffmpegの最新バイナリを取得

ソースからだと面倒なので、一応信頼できるところからバイナリを取得

本家ffmpegのリンクにあるWindows版exeを提供しているところから取得します。http://ffmpeg.zeranoe.com/builds/

DLLも最新を使うようにするため、Static版を取得します。

展開したffmpeg.exeを携帯君のcoreフォルダに入れるだけ。一応古いffmpeg.exeはりネームしておきます。

Windows10ではAddiTunes.exeとavscheck.exeは悪さするのでリネームしておきます。

3.音声コーデックの取得

地デジでAAC入っている場合でAACをそのままコピーする場合には不要です。

4.transcodein.iniの書き換え

さて、transcodein.iniの設定では、もはやまったく動かないので、中身を書き換えます。

さて、transcodeing.iniのパラメータ編集です。

HD画質のままの場合(だいぶ変えました。profileも使おうと思おいましたが、ffmpeg同様x264で全然互換がないので、staticの埋め込まれた最新h264ライブラリを前提としてffmpegから呼び出します。cuda使用のパターンにしてみおました。partitionsはたぶん効果がありませんが入れておきます。audioはコピーだけで再生が可能になりました。-absf aac_adtstoascの呪文は要りません)

[Item1]

Title=ts(AAC)⇒MP4(H.264+AAC)

Command0=””<%AppPath%>\cores\ffmpeg” -y -i “<%InputFile%>” -acodec copy -vcodec h264_nvenc -tune animation -preset slow -profile high -vf yadif=1:-1:0 -b:v 1500K -crf 22 -partitions parti4x4+partp8x8+partb8x8 -8x8dct 1 -f mp4 “<%OutputPath%><%Title%>.mp4″”

上の中には解像度などがありませんが、基本入力と同じ出力にしたい場合は書かないようにすると、出力も同じ画角、解像度で出力されます。

次はPSP(旧版)の場合です(上のパターンからの延長なのでAudioはAACのコピー前提です。

[Item1]

Title=ts(AAC)⇒旧PSP(AAC)変換

Command0=””<%AppPath%>\cores\ffmpeg” -y -i “<%InputFile%>” -acodec copy -vcodec libx264 -metadata title-jpn=”<%Title()%>” -b 768k -s 320×240 -aspect 16:9 -partitions pi4x4,pp8x8,pb8x8 -r 29.97 -deinterlace -crf 20 -mbd 2 -sws_flags lanczos+print_info -me_method umh -g 150 -qcomp 0.7 -qblur 0.5 -qmin 10 -qmax 51 -qdiff 4 -subq 6 -me_range 16 -coder vlc -trellis 2 -sc_threshold 50 -flags +loop -mixed-refs 1 -mbtree 1 -fast-pskip 1 -keyint_min 30 -cmp chroma -level 30 -refs 3 -i_qfactor 0.714286 -vf “crop=in_w:in_h*3/4:0:in_h/4/2” -f psp -threads 2 “<%OutputPath%><%Title%>.MP4″”

Command1=””<%AppPath%>\cores\ffmpeg” -y -i “<%InputFile%>” -f image2 -ss 5 -vframes 1 -s 160×120 -an “<%OutputFile%>.JPG””

HEVCのやつも書いておきます。main10指定により10ビットになります。あとはよけいなものは不要です。大体が効果がありません。qmaxとqminはあるかも。

Command0=””<%AppPath%>\cores\ffmpeg” -y -i “<%InputFile%>” -acodec copy -vcodec hevc_nvenc -preset slow -tune animation -profile main10 -b:v 2000K -crf 22 -f mp4 -threads 4 “<%OutputPath%><%Title%>.mp4″”

5.軽量ビューワのインストール

HD画質だとQuicktimeプレイヤーではさすがに再生できない(ガクガク/最近はましになった)のでh264ではVNCヴューワは必須アイテムのようです。もちろん高性能なCPUとGPUがあればなんですが。h265だとmediaplayerが一番マシかと。VNCは2019/5の段階でmain10には非対応のようです。ffplayでは再生可能です。

これも無難に窓の杜からとってきます。

http://www.forest.impress.co.jp/lib/pic/video/mediaplay/vlcmplayer.html

32ビット版で十分です。64ビット版がどうしてもほしい方は本家からたどります。

これで作ったMP4ファイルが普通に再生できればOKです。

一応最新の機種では、旧版を使わなくとも、そのままエンコード版でHV画質が再生できます。

では、頑張ってください。

追記 CUDAでのパラメータが割とうまくいったので、今回新たに載せます。

[Item0]
Title=ts(AAC) ⇒ MP4 Nvidea CUDA
‘ 入力のデコーダー 動画のエンコード       いつものお約束オプション                                                                                                                                                                                         音声はコピー
Command0=””<%AppPath%>\cores\ffmpeg_core2″ -y -vcodec mpeg2_cuvid -i “<%InputFile%>” -vsync 0 -vcodec h264_nvenc -partitions parti4x4+partp8x8+partb8x8 -8x8dct 1 -r 59.940059 -deinterlace -crf 20 -mbd 2 -sws_flags lanczos+print_info -me_method umh -g 250 -qcomp 0.7 -qblur 0.5 -qmin 8 -qmax 51 -qdiff 4 -subq 7 -me_range 16 -b_strategy 1 -coder 1 -trellis 2 -sc_threshold 40 -flags +loop+ilme -mixed-refs 1 -mbtree 1 -fast-pskip 1 -keyint_min 0 -cmp chroma -level 51 -refs 8 -i_qfactor 0.714286 -acodec copy -absf aac_adtstoasc -f mp4 “<%OutputPath%><%Title%>.mp4″”

特に音ズレとかも起きません。

12分アニメでエンコ時間が1分20秒でした。

恐らくいくつかのパラメータが捨てられているでしょうが、とりま通るので、そのまま入れてあります。

んー、あまり変わらないので以下のほうがすっきりするかも。

Command0=””<%AppPath%>\cores\ffmpeg_core2″ -y -vcodec mpeg2_cuvid -i “<%InputFile%>” -vcodec h264_nvenc -deinterlace -profile main -preset hq -level 5.1 -crf 20 -qp 0 -tune animation -acodec copy -absf aac_adtstoasc -f mp4 “<%OutputPath%><%Title%>.mp4″”

-crfは小さいほうがいいですが、ファイルがでかくなります。-qpは妥協せず0で。yuv444pは入力がyuv420なのでメリット無しです。ただしcudaはnv16≒yuv444に変換か?

-priset bdも全然変化がないわりに500KBサイズが増えるのでやはり-qp 0だけで十分かと。

追記:-qp 0は実装が変わりこれを指定すると元サイズの数倍になります。

これは”古い”PSPではたぶん再生できません(壊れたので未確認)が、windows、iphone、android4以上で十分再生できます。(衛星のサイズのままだと非力なAndroidは厳しいのでデコーダをhd+にします)

cudaとhevcが落ち着いてきたので採用します。以下パラメータ(cudaない人は使えないかも)

Command1=””<%AppPath%>\cores\ffmpeg2_x64″ -y -i “<%InputFile%>” -acodec copy -vcodec hevc_nvenc -preset placebo -true animation -vf yadif=1:-1:0 -b:v 1500K -crf 20 -f mp4 “<%OutputPath%><%Title%>.mp4″”

追記

nvencはパラメーターを指定してもサポートしていなければよみすててある様です

必須の値はデフォ値に変換されます

1Mだとエンコ失敗することがありますので最低1.5Mにします

cudaない人はnv_enchevcではなくhevc_qsvにして試すといいかもしれません。

コメントを残す