Пример #1
0
def generate_all(fastflix: FastFlix,
                 encoder: str,
                 audio: bool = True,
                 subs: bool = True,
                 disable_filters: bool = False) -> Tuple[str, str]:
    settings = fastflix.current_video.video_settings.video_encoder_settings

    audio = build_audio(
        fastflix.current_video.video_settings.audio_tracks) if audio else ""

    subtitles, burn_in_track, burn_in_type = "", None, None
    if subs:
        subtitles, burn_in_track, burn_in_type = build_subtitle(
            fastflix.current_video.video_settings.subtitle_tracks)
        if burn_in_type == "text":
            for i, x in enumerate(fastflix.current_video.streams["subtitle"]):
                if x["index"] == burn_in_track:
                    burn_in_track = i
                    break

    attachments = build_attachments(
        fastflix.current_video.video_settings.attachment_tracks)

    filters = None
    if not disable_filters:
        filters = generate_filters(
            source=fastflix.current_video.source,
            burn_in_subtitle_track=burn_in_track,
            burn_in_subtitle_type=burn_in_type,
            enable_opencl=fastflix.opencl_support,
            **fastflix.current_video.video_settings.dict(),
        )

    ending = generate_ending(
        audio=audio,
        subtitles=subtitles,
        cover=attachments,
        output_video=fastflix.current_video.video_settings.output_path,
        **fastflix.current_video.video_settings.dict(),
    )

    beginning = generate_ffmpeg_start(
        source=fastflix.current_video.source,
        ffmpeg=fastflix.config.ffmpeg,
        encoder=encoder,
        filters=filters,
        concat=fastflix.current_video.concat,
        enable_opencl=fastflix.opencl_support,
        **fastflix.current_video.video_settings.dict(),
        **settings.dict(),
    )

    return beginning, ending
Пример #2
0
def generate_all(
    fastflix: FastFlix, encoder: str, audio: bool = True, subs: bool = True, disable_filters: bool = False
) -> Tuple[str, str]:
    settings = fastflix.current_video.video_settings.video_encoder_settings

    audio = build_audio(fastflix.current_video.video_settings.audio_tracks) if audio else ""

    subtitles, burn_in_track = "", None
    if subs:
        subtitles, burn_in_track = build_subtitle(fastflix.current_video.video_settings.subtitle_tracks)

    attachments = build_attachments(fastflix.current_video.video_settings.attachment_tracks)

    filters = None
    if not disable_filters:
        filters = generate_filters(
            burn_in_subtitle_track=burn_in_track, **asdict(fastflix.current_video.video_settings)
        )

    ending = generate_ending(
        audio=audio,
        subtitles=subtitles,
        cover=attachments,
        output_video=fastflix.current_video.video_settings.output_path,
        extra=fastflix.current_video.video_settings.video_encoder_settings.extra,
        **asdict(fastflix.current_video.video_settings),
    )

    beginning = generate_ffmpeg_start(
        source=fastflix.current_video.source,
        ffmpeg=fastflix.config.ffmpeg,
        encoder=encoder,
        filters=filters,
        **asdict(fastflix.current_video.video_settings),
        **asdict(settings),
    )

    return beginning, ending