这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【米尔-RK3576】写一个视频播放测试程序

共1条 1/1 1 跳转至

【米尔-RK3576】写一个视频播放测试程序

高工
2026-02-08 14:59:15     打赏

【目标实现】

使用rk3576播放mp4视频

【硬件】

米尔MYD-LR4576开发板

【软件实现】

#!/usr/bin/env python3
"""纯 GStreamer 方案:硬解 → appsink → Qt 显示 + 独立音频播放(无需 OpenCV GStreamer 支持)"""
import sys
import os
import signal
import subprocess
import numpy as np
from PySide6.QtWidgets import QApplication, QMainWindow, QLabel, QVBoxLayout, QWidget, QPushButton, QHBoxLayout
from PySide6.QtGui import QImage, QPixmap
from PySide6.QtCore import Qt, QThread, Signal

# GStreamer 初始化
import gi
gi.require_version('Gst', '1.0')
gi.require_version('GstApp', '1.0')
from gi.repository import Gst, GstApp, GLib

Gst.init(None)

VIDEO_PATH = "/userdata/mypro/pro/videos/intro_guide.mp4"
TARGET_W, TARGET_H = 800, 600


class AudioPlayer:
    """独立音频播放器:使用 gst-launch-1.0 播放音频"""
    def __init__(self, video_path):
        self.video_path = video_path
        self.proc = None

    def start(self):
        if self.proc and self.proc.poll() is None:
            return  # 已在播放
       
        # 构建音频管道:提取音频并播放到 ALSA
        cmd = [
            "gst-launch-1.0",
            "filesrc", f"location={self.video_path}",
            "!", "qtdemux", "name=d",
            "d.audio_0", "!", "queue",
            "!", "decodebin",
            "!", "audioconvert",
            "!", "alsasink", 
            "device=hw:0,0",
            "sync=false"
        ]
        # 后台静默运行,创建新进程组便于终止
        self.proc = subprocess.Popen(
            cmd,
            stdout=subprocess.DEVNULL,
            stderr=subprocess.DEVNULL,
            preexec_fn=os.setsid
        )
        print("	



关键词: -RK3576     视频     播放    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]