1

Matlab (R2015a、Windows7) で Computer Vision System Toolbox を使用して、ビデオ ファイルのフレームをマスクし、新しいビデオ ファイルに書き込みます。マスキングによって、画像の約 80% を 0 と 1 に置き換えます。

videoFileReader = vision.VideoFileReader(fin);
videoFileWriter=vision.VideoFileWriter(fout, ...
    'FileFormat', 'MPEG4', 'FrameRate', videoFileReader.info.VideoFrameRate);
frame = step(videoFileReader);   
frame_new=mask(frame); %user function
step(videoFileWriter, frame_new);  

元のフレームと変更されたフレームのサイズ (1080 x 1920 x 3) と形式 (単一) は同じままです。それでも、マスクされたビデオは元のビデオよりもはるかに大きくなります。たとえば、1GB の元のビデオはマスキング後にほぼ 4GB になります。これらの大きな新しいファイルを開くことができません (Windows 7、VLC メディア)。Handbrake はそれらを正当なビデオ ファイルとして認識しません。

画像の約 20% だけをマスクしても、マスクされたビデオはまだ大きくなります (最大 2.5Gb) が、これらを開くのに問題はありません。

「VideoCompressor」、「MJPEG Compressor」を追加してみましたが、警告が出ます。

videoFileWriter=vision.VideoFileWriter(fin, 'FileFormat', 'MPEG4', ...
'FrameRate', videoFileReader.info.VideoFrameRate, 'VideoCompressor', 'MJPEG Compressor'); 
 <...>   
 Warning: The VideoCompressor property is not relevant in this configuration of the System object.

匿名化する必要のある TB のビデオ データがあるため、ご提案をいただければ幸いです。ありがとう!

4

2 に答える 2

0

ラリッサ

出力 MPEG-4 ファイルのサイズは、システム オブジェクトの Quality パラメーターを調整することで制御できます。これは、出力ビットレートを制御する 0 ~ 100 の値です。したがって、品質が高いほど、ファイルは大きくなります。デフォルト値は 75 です。システム オブジェクトは、Microsft API を使用して MPEG-4 ファイルを作成します。

次に、ファイルの書き込みを完了するために release(videoFileWriter) を呼び出す必要があります。あなたがそれを行っていることを確認したいだけで、このコード スニペットの目的でそれを省略しました。

使用するコンプレッサーが固定されているため、VideoCompressor プロパティは MPEG-4 ファイル形式では有効ではありません。AVI ファイルを書き出す場合にのみ、そのプロパティを選択できます。ただし、おそらく MPEG-4 と同じレベルの圧縮には達しません。

お役に立てれば。

ディネシュ

于 2015-08-24T15:06:57.813 に答える