Skip to content

Commit cdb679c

Browse files
committed
advanced fade ffmpeg script
1 parent 86e35a9 commit cdb679c

File tree

5 files changed

+58
-21
lines changed

5 files changed

+58
-21
lines changed

ff/fade.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
from argparse import ArgumentParser
2+
from ffmpeg import FFmpeg
3+
4+
5+
def fade_filter_string(fade_type: str, start_sample: int, num_samples: int):
6+
return f"afade=t={fade_type}:ss={start_sample}:ns={num_samples}"
7+
8+
9+
def main():
10+
parser = ArgumentParser()
11+
parser.add_argument("input")
12+
parser.add_argument("output")
13+
parser.add_argument(
14+
"-t", "--type", choices=["in", "out"], action="extend", nargs="+"
15+
)
16+
parser.add_argument(
17+
"-ss", "--start_sample", action="extend", type=int, nargs="+"
18+
)
19+
parser.add_argument(
20+
"-ns", "--num_samples", action="extend", type=int, nargs="+"
21+
)
22+
args = parser.parse_args()
23+
24+
print(args)
25+
26+
af_string = ",".join(
27+
[
28+
fade_filter_string(fade_type, start_sample, num_samples)
29+
for (fade_type, start_sample, num_samples) in zip(
30+
args.type, args.start_sample, args.num_samples
31+
)
32+
]
33+
)
34+
35+
print(f"Applied audio filter option: {af_string}")
36+
37+
ffmpeg = (
38+
FFmpeg()
39+
.option("y")
40+
.input(args.input)
41+
.output(
42+
args.output,
43+
af=af_string,
44+
)
45+
)
46+
47+
ffmpeg.execute()
48+
49+
50+
if __name__ == "__main__":
51+
main()

ff/fade_in.py

Lines changed: 0 additions & 19 deletions
This file was deleted.

ff/subsample.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ def main():
99
parser.add_argument("rate", type=int)
1010
args = parser.parse_args()
1111

12-
ffmpeg = FFmpeg().option("y").input(args.input).output(args.output, ar=args.rate)
12+
ffmpeg = (
13+
FFmpeg().option("y").input(args.input).output(args.output, ar=args.rate)
14+
)
1315

1416
ffmpeg.execute()
1517

own/subsample.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
from own.io import read_samples, write_samples
55

66

7-
def resample(original: List[int], original_rate: int, target_rate: int) -> List[int]:
7+
def resample(
8+
original: List[int], original_rate: int, target_rate: int
9+
) -> List[int]:
810
original_num_samples = len(original)
911
ratio = target_rate / original_rate
1012
target_num_samples = int(original_num_samples * ratio)

ruff.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
line-length = 80

0 commit comments

Comments
 (0)