首页 > 其他分享 >ffmpeg以RTP协议推送视频

ffmpeg以RTP协议推送视频

时间:2022-08-15 06:22:18浏览次数:83  
标签:视频 ffmpeg 编码 vcodec RTP 推送 摄像头

docker编译环境

docker pull abdulachik/ffmpeg.js:latest
docker run -it -p 8080:8080 -v /Users/workspace/Downloads/ffmpeg_wasm:/tmp --privileged=true abdulachik/ffmpeg.js:latest /bin/bash
cd /tmp

流程概述

摄像头->ffmpeg->编码为h264视频->传递给h264解码器->播放
(也可以让视频编码后直接RTMP协议推流,本地解码播放仅作测试)

ffmpeg编码视频流(来自摄像头)为flv(h264)

读取PC摄像头视频数据并以RTMP协议发送为直播流。
ffmpeg综合应用示例(一)——摄像头直播
浏览器可通过调用MediaDevices.getUserMedia()来访问本地媒体,调用该方法后浏览器会提示用户给予使用媒体输入的许可,媒体输入会产生一个MediaStream,里面包含了请求的媒体类型的轨道。此流可以包含一个视频轨道(来自硬件或者虚拟视频源,比如相机、视频采集设备和屏幕共享服务等等)、一个音频轨道(同样来自硬件或虚拟音频源,比如麦克风、A/D转换器等等),也可能是其它轨道类型。
谈谈MediaStream
FFmpeg获取DirectShow设备数据(摄像头,录屏)

流媒体协议

  • RTP:基于UDP协议,不保证传输质量
  • RTCP
  • RTSP
  • RTMP
  • MMS
  • HLS

编码为H.264,发布RTP

下面这条命令,实现了:获取摄像头数据->编码为H.264->封装为RTP并发送至组播地址。

ffmpeg -f dshow -i video="Integrated Camera" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f rtp rtp://233.233.233.223:6666>test.sdp
注1:考虑到提高libx264的编码速度,添加了-preset:v ultrafast和-tune:v zerolatency两个选项。

注2:结尾添加“>test.sdp”可以在发布的同时生成sdp文件。该文件可以用于该视频流的播放。

下面这条命令,实现了从摄像头读取数据并编码为H.264,最后保存成mycamera.mkv。
ffmpeg -f dshow -i video="Integrated Camera" -vcodec libx264 mycamera.mkv

编码为MPEG2,发布UDP

与编码为H.264类似,指明-vcodec即可。

ffmpeg -f dshow -i video="Integrated Camera" -vcodec mpeg2video -f mpeg2video udp://233.233.233.223:6666

浏览器上实现编码为H.264并发布RTP

假设获取到的浏览器视频流为MediaStream
写成命令形式为:
ffmpeg -f dshow -i video="MediaStream" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -s 320x240 -f rtp rtp://192.168.4.1 > cam_h264.sdp

标签:视频,ffmpeg,编码,vcodec,RTP,推送,摄像头
From: https://www.cnblogs.com/qsbye/p/16586928.html

相关文章

  • 浏览器运行ffmpeg
    docker编译环境docker镜像dockerpullabdulachik/ffmpeg.js:latestdockerrun-it-p8090:8090-v/Users/workspace/Downloads/ffmpeg_wasm:/tmp--privileged=true......
  • 利用ffmpeg合并音频和视频
    一、当视频文件中没有音频时将audioname音频与videoname视频替换ffmpeg-ivideoname.mp4-imusic.mp3-c:vcopy-c:aaac-strictexperimentaloutputname.mp4二、当......
  • ffmpeg截取视频的片段
    1、执行如下命令:ffmpeg-ss00:00:00-to00:05:23-iimput.mp4-y-fmp4-vcodeccopy-acodeccopy-q:v1output.mp42、参数说明:-ss指定要截取的视频的起始时间。......