Ubuntu主机FFmpeg推流+云服务器Django+WebSocket接收+Web显示

1. Ubuntu主机:FFmpeg + WebSocket 推流

(1) 安装依赖

sudo apt update
sudo apt install -y ffmpeg websocat

(2) 推流命令

/dev/video0 的摄像头数据通过 H.264 编码,封装为 MPEG-TS 流,再通过 WebSocket 发送到阿里云服务器:

ffmpeg -f v4l2 -input_format yuyv422 -video_size 640x480 -framerate 30 -i /dev/video0 \
       -c:v libx264 -preset ultrafast -tune zerolatency -f mpegts - \
       | websocat -b ws://阿里云服务器IP:8000/ws/video/

参数说明:

  • -f v4l2: 从摄像头采集
  • -c:v libx264: H.264 编码
  • -f mpegts: 输出为 MPEG-TS 格式(适合网络传输)
  • websocat: 将数据通过 WebSocket 发送

2. 阿里云服务器:Django + WebSocket 接收

(1) 安装依赖

sudo apt update
sudo apt install -y python3-pip
pip3 install django channels channels_redis

(2) 创建 Django 项目

django-admin startproject video_streamer
cd video_streamer
python3 manage.py startapp stream

(3) 配置 WebSocket 接收

stream/consumers.py
import os
from channels.generic.websocket import AsyncWebsocketConsumer
import asyncio

class VideoConsumer(AsyncWebsocketConsumer):
    async def connect(self):
        await self.accept()

    async def disconnect(self, close_code):
        pass

    async def receive(self, text_data=None, bytes_data=None):
        if bytes_data:
            # 将数据转发给前端(通过WebSocket或存储为文件)
            await self.send(bytes_data=bytes_data)
stream/routing.py
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奇域 自寻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值