ビデオチャットのスクリーン録画をロスレス圧縮する

ビデオチャットのスクリーン録画をロスレス圧縮する

私が行ったビデオチャットのスクリーン録画がありますが、スクリーン録画自体は 59.93 fps で行われたため、ファイルサイズが非常に大きくなっています。ただし、ビデオチャットは 15~30 fps 程度だったと思います。さらに、ビデオチャットだったので、個々のフレームも当然圧縮されていました。

ビデオの品質を落としたくありません (ビデオチャットだったことを考えると、すでにやや劣悪です)。ただし、ファイルサイズを小さくしたいと思っています。ただし、最善の方法がよくわかりません... 私の質問は、次のようになると思います。

  1. ビデオチャットのフレームレートと同期するようにビデオのフレームレートを下げる方法はありますか?
  2. 私が知らない他の圧縮オプションはありますか?

役に立つかどうかはわかりませんが、ffmpeg -i の出力は以下のとおりです。

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '.\Untitled1.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    creation_time   : 2015-08-02T20:32:54.000000Z
    com.apple.quicktime.make: Apple
    com.apple.quicktime.model: MacBookAir4,2
    com.apple.quicktime.software: Mac OS X 10.10.4 (14E46)
    com.apple.quicktime.creationdate: 2015-08-02T12:46:10-0700
  Duration: 00:45:19.57, start: 0.000000, bitrate: 12981 kb/s
  Stream #0:0[0x1](und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1438x874, 12974 kb/s, SAR 1:1 DAR 719:437, 59.93 fps, 60 tbr, 6k tbn (default)
    Metadata:
      creation_time   : 2015-08-02T20:32:54.000000Z
      handler_name    : Core Media Video
      vendor_id       : [0][0][0][0]
      encoder         : H.264

答え1

FFMPEGは、ビデオの「不要な」フレームを単に削除します。-filter:v fps=n

詳しい説明はここ

さらにビデオを h264 から h265 に変換することで、品質の低下を目立たせずにビデオを約 10 分の 1 に圧縮できます。つまり、フレーム レートの低下を考慮に入れなければ、100 MB のファイルは 10 MB の容量しか占有しません。

例:

ffmpeg -i <input> -filter:v fps=30 -c:v libx265 -vtag hvc1 -c:a copy <output> 

関連情報