Class: TorchCodec::Encoders::VideoEncoder

Inherits:
Object
  • Object
show all
Defined in:
lib/torchcodec/encoders/video_encoder.rb

Instance Method Summary collapse

Constructor Details

#initialize(frames, frame_rate:) ⇒ VideoEncoder

Returns a new instance of VideoEncoder.



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/torchcodec/encoders/video_encoder.rb', line 4

def initialize(frames, frame_rate:)
  if !frames.is_a?(Torch::Tensor)
    raise ArgumentError, "Expected frames to be a Tensor, got #{frames.class.name}."
  end
  if frames.ndim != 4
    raise ArgumentError, "Expected 4D frames, got #{frames.shape}."
  end
  if frames.dtype != Torch.uint8
    raise ArgumentError, "Expected uint8 frames, got #{frames.dtype}."
  end
  if frame_rate <= 0
    raise ArgumentError, "#{frame_rate} must be > 0."
  end

  @frames = frames
  @frame_rate = frame_rate
end

Instance Method Details

#to_file(dest, codec: nil, pixel_format: nil, crf: nil, preset: nil, extra_options: nil) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/torchcodec/encoders/video_encoder.rb', line 22

def to_file(
  dest,
  codec: nil,
  pixel_format: nil,
  crf: nil,
  preset: nil,
  extra_options: nil
)
  preset = preset.is_a?(Integer) ? preset.to_s : preset
  Core.encode_video_to_file(
    @frames,
    @frame_rate,
    dest.to_s,
    codec,
    pixel_format,
    crf,
    preset,
    extra_options
  )
end

#to_tensor(format, codec: nil, pixel_format: nil, crf: nil, preset: nil, extra_options: nil) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/torchcodec/encoders/video_encoder.rb', line 43

def to_tensor(
  format,
  codec: nil,
  pixel_format: nil,
  crf: nil,
  preset: nil,
  extra_options: nil
)
  preset_value = preset.is_a?(Integer) ? preset.to_s : preset
  Core.encode_video_to_tensor(
    @frames,
    @frame_rate,
    format,
    codec,
    pixel_format,
    crf,
    preset_value,
    extra_options
  )
end