33 lines
913 B
Bash
Executable File
33 lines
913 B
Bash
Executable File
#!/usr/bin/env python3
|
|
import subprocess, sys
|
|
|
|
fps = sys.argv[1] if len(sys.argv) > 1 else "60"
|
|
size = sys.argv[2] if len(sys.argv) > 2 else "3840x2160"
|
|
port = sys.argv[3] if len(sys.argv) > 3 else "5000"
|
|
bitrate = sys.argv[4] if len(sys.argv) > 4 else "40M"
|
|
|
|
cmd = [
|
|
"ffmpeg", "-hide_banner", "-v", "error",
|
|
"-f", "lavfi", "-i",
|
|
f"testsrc2=size={size}:rate={fps}:duration=1000",
|
|
"-an",
|
|
"-c:v", "libx265",
|
|
"-preset", "ultrafast",
|
|
"-tune", "zerolatency",
|
|
"-pix_fmt", "yuv420p",
|
|
"-b:v", bitrate,
|
|
"-x265-params", "bframes=0:keyint=30:scenecut=0",
|
|
"-f", "rtp",
|
|
"-payload_type", "96",
|
|
"-sdp_file", "/tmp/gdvapi_test4k.sdp",
|
|
f"rtp://127.0.0.1:{port}",
|
|
]
|
|
print("running:", " ".join(cmd))
|
|
try:
|
|
subprocess.run(cmd, check=True)
|
|
except KeyboardInterrupt:
|
|
pass
|
|
except subprocess.CalledProcessError as e:
|
|
print("ffmpeg exited", e.returncode)
|
|
sys.exit(1)
|