49 lines
925 B
Python
Executable File
49 lines
925 B
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import subprocess
|
|
|
|
|
|
class FFmpeg:
|
|
input: str
|
|
output: str
|
|
format: str
|
|
bitrate: str | None
|
|
freq: int | None
|
|
|
|
def __init__(
|
|
self,
|
|
input="pipe:0",
|
|
output="pipe:1",
|
|
format="mp3",
|
|
bitrate=None,
|
|
freq=None,
|
|
):
|
|
self.input = input
|
|
self.output = output
|
|
self.format = format
|
|
self.bitrate = bitrate
|
|
self.freq = freq
|
|
|
|
def __get_cmd(self) -> list[str]:
|
|
cmd = ["ffmpeg", "-i", self.input, "-f", self.format, self.output]
|
|
|
|
if self.bitrate is not None:
|
|
cmd += ["-b:a", self.bitrate]
|
|
if self.freq is not None:
|
|
cmd += ["-ar", str(self.freq)]
|
|
return cmd
|
|
|
|
def run(self):
|
|
cmd = self.__get_cmd()
|
|
|
|
subprocess.Popen(cmd)
|
|
|
|
|
|
def main():
|
|
ff = FFmpeg(bitrate="128k", freq=8000)
|
|
ff.run()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|