web-dev-qa-db-ja.com

WTV(およびDVR-MS)ファイルをより小さな標準形式に変換するにはどうすればよいですか?

HTPCの外付けハードドライブがほぼいっぱいになっているので、テレビから(WTV形式で)記録された多数のフィルムをより小さなものに変換する必要があります。現在、2時間の映画は約3-4GBです。

WTVファイルをDVR-MSに変換して(組み込みのwtvconverter.exeを使用)、次のコマンドラインでhandbrakecliを実行してみました。

handbrakecli.exe --input "film.dvr-ms" --output "film.mp4" --encoder x264 --quality 20

Handbrakeでは、これは出力をMP4に、エンコーダーをx264に、品質を20に設定することによって行われます。

問題は、結果のMP4が1.5〜2 GBであるということです。これは、元のファイルよりも小さいものの、2時間の長さのSDフィルムで録画された(PAL)テレビでは非常識なようです。私はそのようなものが700-800MBであると予想します。

品質を19に設定すると、画像が見られなくなるほど劣化します。

DVR-MSファイルをはるかに小さいサイズに変換するHandbrake(またはhandbrakecli)の設定を誰かが推奨できますか?

(コーデックやコンテナについては特に貴重ではありませんが、多数のコンピュータやモバイルデバイスで確実に視聴できるように、適度に標準的なものを好みます)

[〜#〜] update [〜#〜]

おそらく明確ではありませんが、グラフィカルバージョンのHandbrakeを使用してファイルを変換するための設定がわかっているだけであれば、それは完全に良い答えです!

7
Richard

注意:この回答が書かれたとき(2012年7月)、ffmpegはオーディオを失うことなくWTVファイルを変換できませんでした。ただし、ffmpeg 4.0.0でのテストでは、正常に動作することが示されているため、wtvconverter.exeを使用してWTVファイルをDVR-MSに事前変換する必要はありません。など:

ffmpeg -i "input.wtv" -y -filter:v yadif -vcodec libx264 -crf 23 "output.mp4"

テレビの録画を変換する必要があります。

以下の元の回答

いくつかの調査の結果、次のことが判明しました。

  1. ハンドブレーキはこれに最適なツールではありません。代わりに ffmpeg を使用する必要があります。
  2. Ffmpegを使用する場合は、ソースファイルとしてDVR-MS形式(WTV形式ではなく)を使用する必要があります。そうしないと、音が出なくなります。

最初にWTVからDVR-MSに変換する、いくつかの手順を実行する必要があります。

%WINDIR%\ehome\wtvconverter.exe "Recorded TV Show.wtv" "Recorded TV Show.dvr-ms"

次に、そのDVR-MSファイルをH.264/MPEG-4AVCに変換します。 -crf 23を変更できます–数値が大きいほど品質が低くなり、正常な値は19から25になります。

ffmpeg -i "Recorded TV Show.dvr-ms" -y -filter:v yadif -vcodec libx264 -crf 23 "Recorded TV Show.mp4"

次に、一時的なDVR-MSファイルを削除します。

del /F "Recorded TV Show.dvr-ms"

変換されると、VLCは「RecordedTVShow.mp4」に関する次の詳細を提供します。

enter image description here

私が変換したファイルは、1時間50分のSDコンテンツで530MB(1.59GBから減少)になりました。これは、元のWTVファイルのサイズの約1/3であることを意味します。

8
Richard

私はffmpegにそのトリックをさせることができましたが、機能するスイッチを見つけるのに少し時間がかかりました。これらが最適かどうかはわかりません。変換にはかなり時間がかかりますが、クリーンで、試したすべての場所で再生され、オーディオは正しく同期されています。

ffmpeg -y -threads 8 -i pbsvideofile.wtv -target pal-dvd -deinterlace -async 48000  pbsvideofile.mpg 
2
suken

@sukenの回答に基づいて、バッチ変換を行うことができました。当時使用していたffmpegのバージョンでは、.wtvから.mp4まで直接機能していました。

gci 'D:\Recorded TV\*' -include('*lola*','*buzzcocks*') | % {
    $file = $_.Name
    .\ffmpeg -i $_ -vcodec copy -acodec copy -f dvd -deinterlace -map_metadata 0 "D:\Media\TV\$file.mp4"
}

上記の場合:

  • 「D:\ RecordedTV」がソースの場所です
  • 「D:\ Media\TV」が宛先の場所です
  • ファイル名に「lola」と「buzzcocks」が含まれる番組のみを含めるようにフィルタリングが行われています(必要に応じてこれを削除できます)

コマンドはメタデータを転送しようとしますが(タイトルと説明を表示するなど)、宛先ファイルで取得されていないようです。代わりに、最初に WTV-MetaRenamer を試すことができます。

1
Alex Angas