Skip to main content

Frame-based cutting/trimming/splicing of audio with VapourSynth and FFmpeg.

Project description

acsuite

Documentation Status Code style: black

audiocutter(.py) replacement for VapourSynth.

Allows for easy frame-based cutting/trimming/splicing of audio files using VapourSynth clip information.

Includes some extra tools for working with audio files or timestamps.

Functions:

eztrim(clip, trims, audio_file[, outfile, ffmpeg_path=, quiet=, timecodes_file=])

import vapoursynth as vs
core = vs.core
from acsuite import eztrim

file  = r'/BDMV/STREAM/00003.m2ts'
afile = r'/BDMV/STREAM/00003.wav'  # pre-extracted with TSMuxer or similar

src = core.lsmas.LWLibavSource(file)

# for the example, we will assume the src clip is 100 frames long (0-99)
trimmed_clip = src[3:22]+src[23:40]+src[48]+src[50:-20]+src[-10:-5]+src[97:]

# `clip` arg should be the uncut/untrimmed source that you are trimming from
eztrim(src, [(3,22),(23,40),(48,49),(50,-20),(-10,-5),(97,None)], afile)
Output:

Uses the file extension of the input audio_file to output a cut/trimmed audio file with the same extension. If no outfile is given, defaults to audio_file_cut.ext.

concat(audio_files, outfile[, ffmpeg_path=, quiet=])

concat(['file.aac', 'file2.aac'], 'outfile.aac')

Will concatenate a list of audio files (paths given as strings) into one file using FFmpeg.


Utility Functions:

f2ts(f, src_clip=[, precision=, timecodes_file=])

Useful for finding the timestamp for a frame number.

from functools import partial
import vapoursynth as vs
core = vs.core

clip = core.std.BlankClip()
ts = partial(f2ts, src_clip=clip)

ts(5), ts(9), ts(clip.num_frames), ts(-1)
# ('00:00:00.208', '00:00:00.375', '00:00:10.000', '00:00:09.958')

clip_to_timecodes(src_clip)

Returns a list of timecodes for VFR clips. Used as a fallback when timecodes_file is not given to f2ts or eztrim.

Getting Started

Dependencies

Installing

Arch Linux

Install the AUR package vapoursynth-tools-acsuite-git with your favorite AUR helper:

$ yay -S vapoursynth-tools-acsuite-git

Gentoo Linux

Install via the VapourSynth portage tree.

Windows / Other

Use the Python Package Index (PyPI / pip):

python3 -m pip install --user --upgrade acsuite-orangechannel

or simply

pip install acsuite-orangechannel

if you are able to use a pip executable directly.

Help!

Check out the documentation or use Python's builtin help():

help('acsuite')

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

acsuite-orangechannel-6.0.0.tar.gz (10.6 kB view hashes)

Uploaded source

Built Distribution

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page