2012年9月18日火曜日

TSデータを直接MP4へエンコード

0 コメントする
今までMediaCoderやAnyVideoConverter、FreemakeVideoConverterなど試してきましたが。

安定してエンコードが出来るものが中々見つからず途方に暮れていました。

まー今も刻々と加算されていくTSデータをどうしようかと考えていたわけですが。

色々と更に深く調べていくとこういう方法があることがわかりました。


「TSからMP4へドラッグ&ドロップで変換」

携帯動画変換君をベースとして変換するというもの。

これが中々優秀で記述をよく見ると音声分離とエンコードもシッカリやっています。

これは使える!と思って早速使わせてもらったのですが、どうもうまくいかない。

なんでかなーと色々と探ってみると。

http://blog.k-tai-douga.com/article/52205018.html

こちらのコメント欄にかかれていますが、

ffmpegのバージョンによって記述順番による解釈が変わるらしくそれが原因でcopyが上手くいってなかったようでした。

当方では FFmpeg rev.44127 を使用していたため、これが原因で使えなかったようです。

というわけで、 FFmpeg rev.44127 でも使えるように。なおかつ、インターレース解除を行うコマンドを付け足したものを用意しました。その他準備するものは引用元である「TSからMP4へドラッグ&ドロップで変換」こちらからどうぞ。


[Info]
Title=機種別設定:TSをMP4へ変換
TitleE=Model: TS to MP4
Description=TS放送をMP4へ変換するバッチファイル 改
DescriptionE=TS放送をMP4へ変換するバッチファイル 改

[Item0]
Title=TSをMP4へ変換 12Mbps 29.97fps 16:9
TitleE=TStoMP4 12Mbps 29.97fps 16:9
Command0=""<%AppPath%>\cores\BonTsDemux.exe" -i "<%InputFile%>" -o "<%TemporaryFile%>" -encode Demux(m2v+wav) -sound 1 -start -quit"
Command1=""<%AppPath%>\cores\neroAacEnc.exe" -if "<%TemporaryFile%>.wav" -lc -br 128000 -of "<%TemporaryFile%>.aac""
Command2=""<%AppPath%>\cores\ffmpeg.exe" -y -i "<%TemporaryFile%>.m2v" -an -vcodec libx264 -pass 1 -flags mv4 -s 1280x720 -aspect 16:9 -r 30000/1001 -f mp4 -b 12000k -g 150 -qcomp 0.7 -qmin 10 -qmax 51 -qdiff 4 -subq 6 -me_range 16 -i_qfactor 0.714286 -deinterlace "<%OutputFile%>.mp4""
Command3=""<%AppPath%>\cores\ffmpeg.exe" -y -i "<%TemporaryFile%>.aac" -i "<%TemporaryFile%>.m2v"  -acodec copy -vcodec libx264 -pass 2 -flags mv4 -s 1280x720 -aspect 16:9 -r 30000/1001 -f mp4 -b 12000k -g 150 -qcomp 0.7 -qmin 10 -qmax 51 -qdiff 4 -subq 6 -me_range 16 -i_qfactor 0.714286 -deinterlace "<%OutputFile%>.mp4""
Command4="rm "<%TemporaryFile%>.m2v""
Command5="rm "<%TemporaryFile%>.wav""
Command6="rm "<%TemporaryFile%>.aac""


2PASSエンコードですので私の環境Core i7 2600K OC4GHz(4Core8Thread)で30分の動画が1時間ぐらいでした。実時間の約2倍ですね。CPU使用率はほぼ100%で動作しています。

ビットレートはお好みで調整という感じですが、体裁を整えるのとある程度の画質を維持する事を考えると5000kbpsぐらいが丁度いいかもしれません。

今回のものはテストとして12000kbpsにしています。30分の動画で2GBぐらいとあんまり容量減ってない(ノ∀`)

そして何よりMPC-HCで再生するとクラッシュするwプロパティを見ると動画情報が全く検出が出来てないのでこれが原因ではないかと思いますが・・・。VLCだと再生出来ます。