kopia lustrzana https://github.com/corrscope/corrscope
commit
97c8f88c20
|
@ -56,10 +56,17 @@ class _FFmpegCommand:
|
||||||
|
|
||||||
self.templates += ffmpeg_input_video(ovgen_cfg) # video
|
self.templates += ffmpeg_input_video(ovgen_cfg) # video
|
||||||
if ovgen_cfg.master_audio:
|
if ovgen_cfg.master_audio:
|
||||||
audio_path = shlex.quote(abspath(ovgen_cfg.master_audio))
|
# Load master audio and trim to timestamps.
|
||||||
|
|
||||||
self.templates.append(f'-ss {ovgen_cfg.begin_time}')
|
self.templates.append(f'-ss {ovgen_cfg.begin_time}')
|
||||||
|
|
||||||
|
audio_path = shlex.quote(abspath(ovgen_cfg.master_audio))
|
||||||
self.templates += ffmpeg_input_audio(audio_path) # audio
|
self.templates += ffmpeg_input_audio(audio_path) # audio
|
||||||
|
|
||||||
|
if ovgen_cfg.end_time is not None:
|
||||||
|
dur = ovgen_cfg.end_time - ovgen_cfg.begin_time
|
||||||
|
self.templates.append(f'-to {dur}')
|
||||||
|
|
||||||
def add_output(self, cfg: 'Union[FFmpegOutputConfig, FFplayOutputConfig]') -> None:
|
def add_output(self, cfg: 'Union[FFmpegOutputConfig, FFplayOutputConfig]') -> None:
|
||||||
self.templates.append(cfg.video_template) # video
|
self.templates.append(cfg.video_template) # video
|
||||||
if self.ovgen_cfg.master_audio:
|
if self.ovgen_cfg.master_audio:
|
||||||
|
|
|
@ -10,7 +10,7 @@ from ovgenpy.channel import Channel, ChannelConfig
|
||||||
from ovgenpy.config import register_config, register_enum, Ignored
|
from ovgenpy.config import register_config, register_enum, Ignored
|
||||||
from ovgenpy.renderer import MatplotlibRenderer, RendererConfig, LayoutConfig
|
from ovgenpy.renderer import MatplotlibRenderer, RendererConfig, LayoutConfig
|
||||||
from ovgenpy.triggers import ITriggerConfig, CorrelationTriggerConfig, Trigger
|
from ovgenpy.triggers import ITriggerConfig, CorrelationTriggerConfig, Trigger
|
||||||
from ovgenpy.util import pushd
|
from ovgenpy.util import pushd, coalesce
|
||||||
from ovgenpy.utils import keyword_dataclasses as dc
|
from ovgenpy.utils import keyword_dataclasses as dc
|
||||||
from ovgenpy.utils.keyword_dataclasses import field
|
from ovgenpy.utils.keyword_dataclasses import field
|
||||||
from ovgenpy.wave import Wave
|
from ovgenpy.wave import Wave
|
||||||
|
@ -31,11 +31,12 @@ class BenchmarkMode(IntEnum):
|
||||||
OUTPUT = 3
|
OUTPUT = 3
|
||||||
|
|
||||||
|
|
||||||
@register_config(always_dump='begin_time subsampling')
|
@register_config(always_dump='begin_time end_time subsampling')
|
||||||
class Config:
|
class Config:
|
||||||
master_audio: Optional[str]
|
master_audio: Optional[str]
|
||||||
fps: int
|
fps: int
|
||||||
begin_time: float = 0
|
begin_time: float = 0
|
||||||
|
end_time: float = None
|
||||||
|
|
||||||
subsampling: int = 1
|
subsampling: int = 1
|
||||||
|
|
||||||
|
@ -144,7 +145,7 @@ class Ovgen:
|
||||||
|
|
||||||
begin_frame = round(fps * self.cfg.begin_time)
|
begin_frame = round(fps * self.cfg.begin_time)
|
||||||
|
|
||||||
end_frame = fps * self.waves[0].get_s()
|
end_frame = fps * coalesce(self.cfg.end_time, self.waves[0].get_s())
|
||||||
end_frame = int(end_frame) + 1
|
end_frame = int(end_frame) + 1
|
||||||
|
|
||||||
renderer = self._load_renderer()
|
renderer = self._load_renderer()
|
||||||
|
|
Ładowanie…
Reference in New Issue