随笔 - 836  文章 - 1 评论 - 40 阅读 - 102万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

使用 ffmpeg-python  对rtmp 服务器做压力测试
FFmpeg 下载: https://github.com/BtbN/FFmpeg-Builds/releases    ffmpeg-master-latest-win64-gpl.zip
 
复制代码
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @mail    : lshan523@163.com
# @Time    : 2023/12/23 16:05
# @Author  : Sea
# @File    : ffmpngtest4.py
# @history:   使用 ffmpeg-python  对rtmp 服务器做压力测试
# ****************************
import subprocess
import threading
import datetime
import uuid

RTMP_SERVER = "rtmp://192.168.18.61:1935/Sea1/test212"
MP4_FILE =  "F:\SeaCode\pytest\FFmpeg\zbh_zp_bg.mp4"
NUM_CLIENTS = 10  # 模拟客户端数量
# ffmpeg_command = "ffmpeg -re -i /home/sea/test/video.mp4 -c:v copy -f flv rtmp://192.168.18.61:1935/Sea1/test212"
# 调整分辨率 -vf scale=1280:720   -vf scale=854:480参数来指定视频的分辨率为480p
# ffmpeg_command = "ffmpeg -re -i /home/sea/test/video.mp4 -vf scale=1280:720 -c:v libx264 -f flv rtmp://192.168.18.61:1935/Sea1/test212"

def push_to_rtmp(url):
    strftime = datetime.datetime.now().strftime("%Y-%m-%d-%H_%M_%S")
    command = [
        "ffmpeg",
        "-re",
        "-i", MP4_FILE,
        "-vf", "scale=854:480",
        "-c:v", "libx264",
        "-preset", "ultrafast",
        "-tune", "zerolatency",
        "-c:a", "aac",
        "-f", "flv",
        url+str(strftime)
    ]
    subprocess.run(command)

threads = []

for i in range(NUM_CLIENTS):
    t = threading.Thread(target=push_to_rtmp, args=(RTMP_SERVER+str(i),))
    threads.append(t)
    t.start()

for t in threads:
    t.join()
复制代码

 

posted on   lshan  阅读(148)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
历史上的今天:
2019-12-25 kafka cusumer --java(no springboot)
2019-12-25 springboot集成hbase
2018-12-25 elcipse 安装lombok插件解决 @Slf4j 等找不到log变量问题
点击右上角即可分享
微信分享提示