如何利用vlc或ffmpeg将http的串流转换成rtmp

author author     2023-03-26     313

关键词:

参考技术A   这个应用主要是将HTTP的串流转换成RTMP协议传送到Adobe Flash Media Server或Wowza Media Server的媒体服务器。
  RTMP的协议有以下的参数:
  RTMP: 其原始采用TCP port 1935
  RTMPS: 将RTMP加载到SSL的安全机制,就类似HTTPS。
  RTMPE: 采用Adobe所提供给RTMP所发展的加密版本。
  RTMPT: 在RTMP上加挂he RTMP protocol 封装在HTTP请求中,可以穿越防火墙。这是一个很不错的协议,使用TCP端口80和443绕过公司对防火墙。封装的会话可能携带纯RTMP,RTMPS或RTMPE包内。
  RTMP 串流

  VLC 在 2.0.x版本里可以支持RTMP协议。不过,有些环境却没法执行,例如2.0.2, 2.0.3, 2.0.4, 2.0.6在Windows 2008 Server 64的服务器上确实没法执行。可以开启VLC然后开启网络串流,如“RTMP://aaa.bbb.com:1935/live/串流源“,看看可否开 启。主要是VLC 2.0.x采用 ffmpeg/libav的程序库,但是, 有的包装却没法支持。所以必须先做确认。当 librtmp 的支持被启动于 ffmpeg/libav 则RTMPS才可以有功用。
  VLC和RTMP的情形主要是用来捕获和转码应用程序生成一个单一的流。是通过另一个应用程序分配给多个客户端。这在Wowza是非常重要的。虽然,Wowza也支持VLC采用UDP/RTP/RTSP方式接收串流,但是,很多情况下是很不稳定的。
  LC直接连接到一个的RTMP串流,如WOWZA,不听传入的请求。因此,它是不可能的,以查看的RTMP流直接从VLC。您需要连接到WOWZA,观看流。这是可以用VLC做到的:
  $ vlc rtmp://rtmp.server.com:1935/path/to/stream
  有件事必须提醒的。从VLC将RTMP串流传送给Wowza服务器并不是都很稳定的。有一些时间关系的“虫”会造成Wowza关闭连线。 这样的问题都是与“音频”与”视频“时间戳(Timestamp)有关系的。采用“audio-desync” 选项来整合RTMP也不是个好点子,但是, 可以不断调整与修改。
  Webcam RTMP streaming

  以下是有关webcam的应用。其他的有采集装置、设备、视频文档等应用。
  Windows 的范例
  在windows的采集装置都是利用DirectShow这个界面的。在VLC的模块也是用这样的界面,成为“DirectShow“或”dshow”。以下是范例:
  $ vlc dshow://"" --sout '#transcodevcodec=h264,vb=300,fps=25,scale=1,acodec=mp4a,
  ab=64,channels=2:stdaccess=rtmp,mux=ffmpegmux=flv,dst=rtmp://rtmp.server.com:1935/path/to/stream'
  DirectShow选项也可在QT界面里采用
  Linux 的范例
  通常在Linux的采集装置上都是采用“video for linux” (v4l2)这个界面。使用指令方式来采集webcam装置(或称为”v4l2 装置”)送出RTMP串流的范例如下:
  $ vlc v4l2:// --v4l2-fps=25 --sout '#transcodevcodec=h264,vb=300,fps=25,scale=1,
  acodec=mp4a,ab=64,channels=2:stdaccess=rtmp,mux=ffmpegmux=flv,dst=rtmp://rtmp.server.com:1935/path/to/stream'
  这个例子可以自动侦测 v4l2 装置并且选择第一个装置来采集讯号。其他的参数选项如视频标准(PAL, NTSC)、Chroma、宽度、长度等等可以自行设置。必须要注意的是,这些参数设置跟本身的设备有关。 当我门使用debug模式 (-vvv),VLC自身的video for linux (v4l2) 模块会显示出执行时所出现的数值讯息。v4l2 模块提供以下可作为优化的选项:
  –v4l2-dev=: 指定所要采集的特定装置
  –v4l2-standard=: 使用哪种视频标准,例如: SECAM, PAL, NTSC and more
  –v4l2-width=: 视频呈现的宽度(in pixels)
  –v4l2-height=: 视频呈现的长度度(in pixels)
  以上是描述有关v4l2的参数选项。完整的v4l2模块讯息,可以利用下面的指令查询。
  $ vlc -H -p v4l2 --advanced
  以下是另一个将http串流转码(transcode)到RTMP给Adobe Flash Media Server或Wowza Media Server等视频服务器
  cvlc -I dummy http。//orginalstreamIPaddress:50014 --sout-mux-caching=5000
  --sout='#transcodevenc=x264keyint=60,vcodec=h264,vb=800:stdaccess=rtmp,
  mux=ffmpegmux=flv,dst=rtmp。//destinationIPaddress:1935/live/StreamFile' &
  这是用ffmpeg的方法:
  ffmpeg -i http。//OriginalIPAddress:50010 -vcodec libx264 -vb 800k
  -acodec libfaac -ab 64k -f flv rtmp。//DestinationIPAddress:1935/live/StreamFile

如何利用vlc或ffmpeg将http的串流转换成rtmp

参考技术A 这个应用主要是将HTTP的串流(非HLS或DASH)转换成RTMP协议传送到AdobeFlashMediaServer或WowzaMediaServer的媒体服务器。  根据维基百科:“RealTimeMessagingProtocol(RTMP)wasinitiallyaproprietaryprotocoldevelopedbyMacromediaforstreamingaudio,videoan... 查看详情

如何利用vlc或ffmpeg将http的串流转换成rtmp

参考技术A  这个应用主要是将HTTP的串流转换成RTMP协议传送到AdobeFlashMediaServer或WowzaMediaServer的媒体服务器。  RTMP的协议有以下的参数:  RTMP:其原始采用TCPport1935  RTMPS:将RTMP加载到SSL的安全机制,就类似HTTPS。  RTMPE:... 查看详情

我们如何使用 ffmpeg 将实时 rtmp 流转码为实时 hls 流?

】我们如何使用ffmpeg将实时rtmp流转码为实时hls流?【英文标题】:Howcanwetranscodelivertmpstreamtolivehlsstreamusingffmpeg?【发布时间】:2013-11-0814:35:09【问题描述】:我正在尝试将实时rtmp流实时转换为hls流。看完后我有了一些想法http://so... 查看详情

如何使用 VLC 或 FFMPEG 命令行将外部音轨添加到视频文件

】如何使用VLC或FFMPEG命令行将外部音轨添加到视频文件【英文标题】:HowtoaddanexternalaudiotracktoavideofileusingVLCorFFMPEGcommandline【发布时间】:2013-12-1319:48:42【问题描述】:我想使用bash脚本将audio.mp3音轨添加到无声video.mp4文件中,“c... 查看详情

java中如何将流转换成文件类型

StringId=request.getParameter("userId");intuserId=Integer.parseInt(Id);Stringsql="select*fromUserwhereuserId=?";Useru=newUser();DbHelperdb=newDbHelper();Connectionconnection=db.getConnection();ResultSetrs=null;PreparedStatementpstmt=null;Useru=newUser();trypstmt=connection.prepar... 查看详情

将二进制流转换成图片文件

importjava.io.ByteArrayInputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.InputStream;/***将二进制流转换成图片文件***/publicclassImgErToFileUtil{/***将接收的字符串转 查看详情

java如何将二进制数据流转换成字符串并保存

参考技术AprivatestaticStringbytesToString(Stringfilename) Stringmyreadline=""; try //创建FileReader对象,用来读取字符流 FileReaderfr=newFileReader("userinfo.txt"); //缓冲指定文件的输入 BufferedReaderbr=newBufferedReader(fr); //定义一个Stri... 查看详情

如何通过 http 协议使用 ffmpeg 流式传输

】如何通过http协议使用ffmpeg流式传输【英文标题】:Howtostreamwithffmpegviahttpprotocol【发布时间】:2014-07-2322:50:51【问题描述】:我目前正在制作一个应该在Flowplayer中正确显示的流。首先,我通过RTP将它发送到另一台PC。在这里,... 查看详情

流转换成字符串

publicclassStreamUtil{/***流转换成字符串*@paramis流对象*@return流转换成的字符串返回null代表异常*/publicstaticStringstreamToString(InputStreamis){//1,在读取的过程中,将读取的内容存储值缓存中,然后一次性的转换成字符串返回ByteArrayOutputStreambos=n... 查看详情

流媒体服务海康摄像头rtsp视频推流转码拉流直播综合应用:vlc+ffmpeg+nginx实现rtsp到rtmp网页直播(代码片段)

...二、操作步骤1、准备本地视频2、获取海康RTSP视频流3、FFMPEG:转码推流服务准备4、Nginx:网站服务准备5、FFMPEG推流:rtsp转rtmp6、FFMPEG推流:rtsp转hls三、网页播放视频流1、准备测试网页:test.html2、各种浏览器... 查看详情

利用meta标签将http请求换成https请求

最近网站升级为https之后,为了防止一些http文件没有修改而引起的问题,可以加一个meta标签:<metahttp-equiv="Content-Security-Policy"content="upgrade-insecure-requests">说明:有一定兼容性问题。 查看详情

怎么将一个文件流转换成字符串

参考技术A  FormFilefile=uploaldForm.getFile();StringfilePath;try//取得上传的文件InputStreamstream=file.getInputStream();//把文件读入filePath=request.getRealPath("/upload");//上传到指定的upload包中ByteArrayOutputStreambaos=newByteArrayOutputStream();OutputStreamb... 查看详情

linux系统中nginx+ffmpeg+vlc实现网页视频播放配置过程

linux系统中Nginx+FFmPeg实现网页监控视频播放配置过程1.安装好的nginx上添加模块nginx-http-fiv-module-master此模块是rtmp模块的升级版,有它所有的功能,因此安装它(1)从GitHub上下载该模块,将压缩包放到nginx目录的/usr/local 查看详情

如何将角度换成弧度?

参考技术A方法/步骤在EXCEL中将角度转换成弧度有现成的函数RADIANS(),括号中引用角度,结果为弧度。如果想要将角度转换成45°00′00″的格式,可以设置单元格格式为自定义格式,即利用时间格式将其定义为自己的角度形式。如... 查看详情

ffmpeg实现rtsp流转hls流(代码片段)

一、ffmpeg安装官网地址:http://ffmpeg.org安装包下载地址:https://ffmpeg.org/releases/1、下载安装包并解压wgethttp://ffmpeg.org/releases/ffmpeg-4.1.tar.gztar-xfffmpeg-4.1.tar.gz2、安装依赖yuminstall-ynasm如果不提前安装在./configure会报以下错误3、... 查看详情

转换流:字节输入流转换成字符输入流inputstreamreader

/**将字节输入流变成字符输入流类InputStreamReader*构造方法:*InputStreamReader(InputStreamin)创建一个使用默认字符集的InputStreamReader。常用方法:方法摘要voidclose()关闭该流并释放与之关联的所有资源。StringgetEncoding()返回此流使用的字... 查看详情

crosscompilevlc播放器

上一篇文章介绍了如何交叉编译FFmpeg,继续介绍 VLC播放器 交叉编译。首先下载vlc源码 我用的是2.2.6 地址: http://mirrors.neusoft.edu.cn/videolan/vlc/2.2.6/vlc-2.2.6.tar.xz 解压,进入目录。 然后 设置ffmpeg路径&n... 查看详情

使用ffmpeg能否将rtsp的流转成rtmp流发出来?就如:ffmpeg-irtsp://localhost/live-ccopy-fflvrtm

参考技术Affmpeg-irtsp://localhost:8554/1234-fflvrtmp://127.0.0.1/live/stream可以的,我试过 查看详情