Firefly开源社区

标题: python如何调用在ROC-RK3568-PC盒子中调用ffmpeg? [打印本页]

作者: wuyq    时间: 2024-2-27 09:16
标题: python如何调用在ROC-RK3568-PC盒子中调用ffmpeg?
python如何调用在ROC-RK3568-PC盒子中调用ffmpeg?
需求:想在python代码中通过ffmpeg拉rtsp流;因为固件中自带ffmpeg,且有h264---rkmmp视频流解码。
目前以下测试代码不行,请大神指点。
  1. #!/usr/bin/env python
  2. # -*- encoding: utf-8 -*-
  3. import subprocess

  4. import cv2
  5. import numpy as np

  6. rtspUrl: str = 'rtsp://admin:js123456@192.168.8.216:554/h264/ch1/main/av_stream'
  7. width, height = 2160, 3840
  8. command: list = ['ffmpeg', '-i', rtspUrl, '-loglevel', 'verbose', '-f', 'image2pipe', '-']


  9. def display_video():
  10.     # 启动FFmpeg子进程
  11.     ffmpeg_process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL)
  12.     # 通过管道逐帧读取流数据
  13.     while True:
  14.         # 从子进程标准输出流读取一帧数据
  15.         frame_data = ffmpeg_process.stdout.read(width * height * 3)  # 假设图像宽高为width和height
  16.         if len(frame_data) != width * height * 3:
  17.             break
  18.         # 将原始数据转换为OpenCV格式
  19.         frame = np.frombuffer(frame_data, dtype=np.uint8).reshape((height, width, 3))
  20.         # 在窗口中显示帧
  21.         cv2.imshow('Frame', frame)
  22.         # 按下'q'键退出循环
  23.         if cv2.waitKey(1) & 0xFF == ord('q'):
  24.             break

  25.     # 清理资源
  26.     ffmpeg_process.kill()
  27.     cv2.destroyAllWindows()


  28. if __name__ == '__main__':
  29.     try:
  30.         display_video()
  31.     except Exception as e:
  32.         print(e)
复制代码
输出结果
  1. qt.qpa.xcb: QXcbConnection: XCB error: 148 (Unknown), sequence: 185, resource id: 0, major code: 140 (Unknown), minor code: 20
复制代码
过一会儿进程就自己断掉了,是写法上哪里不对吗?

有没有大神有例子的,带带~~~


tchip_askquestions

rtsp_ffmpeg_wyq.zip

943 Bytes, 下载次数: 0, 下载积分: 灯泡 -1 , 经验 -1


作者: wuyq    时间: 2024-2-28 09:25
每日一顶~~~
作者: wuyq    时间: 2024-2-29 09:35

每日一顶~~~
作者: wuyq    时间: 2024-3-5 11:05
每日一顶~~~
作者: wuyq    时间: 2024-3-6 09:58
每日一顶~~~
作者: wuyq    时间: 2024-3-7 09:26
每日一顶~~~
作者: wuyq    时间: 2024-3-11 13:52
每日一顶~~~




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1