标签: rtmp

iOS上的RTMP流

我必须制作一个iOS应用程序,播放来自相机的实时视频流.我知道iPhone只支持Live HTTP流,但遗憾的是它有大约6-10秒的延迟,这远非我的需要 - 我需要一个实时视图.MJPEG流也不是一种选择,因为它会产生巨大的流量.那么剩下的就是一个RTMP流,但iOS的本身不能发挥它:((我听说rtmpdump的iPhone,但我无法得到它的工作有没有人玩RTMP视频iOS上的成功如何有什么建议?非常感谢!

iphone video rtmp live ios

17
推荐指数
1
解决办法
3万
查看次数

FFMPEG推动RTMP流无法在Android和iPhone上运行

我必须做一个半直播.我使用了Nginx-rtmp模块,然后通过ffmpeg将内容推送到它:

ffmpeg -re -i content.mp4 -r 25 -f fvl "rtmp://rtmp.server.here"
Run Code Online (Sandbox Code Playgroud)

当我在VLC中从"rtmp://rtmp.server.here"打开它时,流运行正常

但我还必须制作播放这些流的iPhone和Android应用程序.这就是问题,流不适用于Android和iPhone.

如果我使用Wowza流云并流式传输到Wowza云而不是我自己的nginx-rtmp服务器,那么为Android和iPhone编写的相同应用程序可以正常播放流.

现在要么nginx-rtmp工作正常,要么还有什么?我也试过crtmpserver,同样的事情发生了.

我想要实现的目标: 我必须开发一个系统,我们可以上传电视频道(拥有它的权利)到服务器,然后制作一个网站,Android应用程序和iPhone应用程序,以便消费者可以观看直播频道.

上传部分我有一个线索,可能是电视调谐卡和开放广播软件将其流式传输到服务器.但是现场播放对我来说是新的.


更新:我也使用了ffprobe,这是输出.(见最后一行)

munir@munir-HP-ProBook-450-G2:~$ ffprobe rtmp://rtmp.server.here
ffprobe version 2.6.2 Copyright (c) 2007-2015 the FFmpeg developers
  built with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
  configuration: --extra-libs=-ldl --prefix=/opt/ffmpeg --enable-avresample --disable-debug --enable-nonfree --enable-gpl --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-decoder=amrnb --disable-decoder=amrwb --enable-libpulse --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-libvorbis --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libspeex --enable-libass --enable-avisynth --enable-libsoxr --enable-libxvid --enable-libvo-aacenc --enable-libvidstab
  libavutil      54. 20.100 / 54. 20.100
  libavcodec     56. 26.100 / 56. 26.100
  libavformat    56. …
Run Code Online (Sandbox Code Playgroud)

iphone android ffmpeg nginx rtmp

17
推荐指数
1
解决办法
2679
查看次数

使用不带Flash的rtmp与Flash服务器通信

我想和使用RTMP的flash服务器交谈,但我不想使用Flash,而是使用c#或java.

我在看Red5,但他们的客户端API似乎有些不稳定.

有没有人有任何其他想法?

flash rtmp

15
推荐指数
2
解决办法
2万
查看次数

如何使用RTMPStreamPublisher发布视频时在iPhone上存储视频?

现在我正在使用RTMPStreamPublisherwowzaserver发布视频.它正在成功上传,但有人能告诉我如何在上传到服务器时将相同的视频存储在iPhone上吗?

我使用https://github.com/slavavdovichenko/MediaLibDemos,但没有太多可用的文档.如果我可以存储发送的数据,那么我的工作就会成功.

以下是他们用于上传流的方法,但我找不到在iPhone设备上存储相同视频的方法:

// ACTIONS

-(void)doConnect {
#if 0 // use ffmpeg rtmp 
    NSString *url = [NSString stringWithFormat:@"%@/%@", hostTextField.text, streamTextField.text];
    upstream = [[BroadcastStreamClient alloc] init:url  resolution:RESOLUTION_LOW];
    upstream.delegate = self;
    upstream.encoder = [MPMediaEncoder new];
    [upstream start];
    socket = [[RTMPClient alloc] init:host]
    btnConnect.title = @"Disconnect";     
    return;
#endif

#if 0 // use inside RTMPClient instance
    upstream = [[BroadcastStreamClient alloc] init:hostTextField.text resolution:RESOLUTION_LOW];
    //upstream = [[BroadcastStreamClient alloc] initOnlyAudio:hostTextField.text];
    //upstream = [[BroadcastStreamClient alloc] initOnlyVideo:hostTextField.text resolution:RESOLUTION_LOW];

#else // use outside RTMPClient instance

    if …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c rtmp ios avcapturesession

15
推荐指数
1
解决办法
1126
查看次数

最好的Flash音频/视频+交互服务器?

我正在寻找有关Flash实时服务器的建议.目前,我们使用了Moock的UnityRed5的组合,但是有一些问题.首先,我们转向AS3,Unity仅支持AS2.其次,Red5对我们来说非常不稳定,我们更喜欢更稳定的东西.我们不能使用官方的Flash Media Server,它有点超出我们的价格范围(单个许可证的起价为4,500美元).

到目前为止,我发现两台看起来满足我需求的服务器,ElectroServerWowza Media Server.有没有人有这些经验,或有任何其他服务器建议?我正在寻找的主要功能:

  1. 稳定
  2. 客户端库中的AS3支持
  3. 可以扩展服务器端(使用Java或其他语言)
  4. 支持来自闪存客户端的实时音频/视频(例如网络摄像头)
  5. (不是必需的,但非常有用)当阻止除HTTP或HTTPS之外的所有流量时的一些通信方法.例如RTMPT(通过HTTP隧道传输RTMP)支持或类似.
  6. 合理的性能,我想在不杀死服务器的情况下至少连接几百个用户.

sockets flash rtmp actionscript-3

13
推荐指数
1
解决办法
1322
查看次数

媒体流基础知识 - HTTP与RTMP

我对媒体流非常陌生,我有一些基本的疑虑要明确:

  1. 据我所知,HTTP流(通过Apache)和RTMP流(通过Red5)之间的区别在于流媒体服务器提供缓冲和提前控制,如搜索等.我是对的吗?

  2. 我可以只传输来自RT5服务器(如Red5)的Flash视频吗?如果我必须传输不同格式的文件,我是否必须使用HTTP流?我可以使用像xuggler这样的工具来动态转码文件并根据Red5服务器的请求发送吗?

我提出了所有这些疑虑,因为我必须为所有移动客户端提供流媒体 - iPhone,黑莓,Android - iPhone不支持闪存,所以去Red5是个好主意吗?

streaming red5 rtmp xuggle

13
推荐指数
1
解决办法
2万
查看次数

使用C#将视频流式传输到基于RTMP的媒体服务器(Red5)

我正在编写一个基于C#.Net的应用程序,该应用程序需要将视频和音频流发布到Red 5 Media Server,并在本地网络上的另一个应用程序中检索相同的已发布流,然后再在Internet上检索.

简而言之,我打算使用Red5作为两个客户端之间视频和音频数据传输的中间或代理.

[客户端1] < - 视频和音频 - > < - 视频和音频 - > [客户端2]

我正在寻找RTMP协议的.NET实现(库),它可以帮助我将流发布到Media Server并重新生成已发布的流并在我的应用程序上播放它.

我搜索了SOF并找到了以下选项:

  • Borrocoli RTMP客户端库
  • FlourineFx.NET
  • WebORb.Net

每个都有一些限制.

  1. Borrocoli RTMP Library仅对音频/视频流提供plyback支持,但没有选择将视频/音频流发布到媒体服务器.我玩过图书馆并看过它的例子,但没有用.如果我错了,请纠正我.

  2. FlourinFx.Net表示支持NetStream.Publish(),NetStream.AttachAudio()和NetStream.AttachVideo()方法.但在最新的代码快照中,没有这样的东西.他们的产品发布也是如此.NetStream类没有所述方法和/或没有任何方法可以帮助将流内容发布到媒体服务器.

  3. WebOrb.Net:我没有对它进行过探讨,但从许可页面可以看出,免费版仅适用于IIS.企业版似乎对发布流媒体视频有所有支持......

问题:

  1. 我可以将WebOrb.Net库与Red5 Media Server结合使用吗?
  2. 免费版本是否允许我向Red5媒体服务器发布音频和视频?
  3. 如果上述问题无效,我还可以使用其他免费替代方案吗?

c# publish red5 rtmp video-streaming

13
推荐指数
1
解决办法
3758
查看次数

制作跨平台RTMP流媒体/播放应用的正确方法.Phonegap livu插件?

如果我们需要编写一个支持播放和播放RTMP视频流的跨平台移动应用程序.我知道可以使用Android原生库,而Objective C也有一些.但是,如果不使用不受支持的Flash,Adobe AIR或其他外部组件,我们是否可以真正实现跨平台?

哪种方式可以编写跨平台(至少Android> = 4 + iOS; WP,黑莓 - 很不错)支持RTMP/RTSP的移动应用程序?

大约要求:

  • 在应用程序页面上播放一个或多个RTMP流,延迟时间最短(最长1-3秒 - 这就是为什么延迟高达10-20秒的HLS不适合的原因)

  • 从移动设备摄像头广播到RTSP服务器

  • (可选)从移动摄像头广播到RTMP服务器(通过编码流到客户端的RTMP)

编写PhoneGap插件是否适合这项任务?这种插件的正确方法是什么 - 尝试将livu lib RTMP客户端(或其他RTMPy客户端)嵌入到插件代码中,比如使用带有phonegap的livu(lib)? 或插件内的操作系统版本并使用一些编译的本机视频流工具?

PS:如果你在github的某个地方使用过这样的插件,或者有一些使用跨平台框架进行视频流的经验 - 请分享你的经验.如果你有一个现成的流媒体插件,并愿意出售它,或者可以写它 - 请同时评论,我很乐意支付它.

android rtmp ios cordova xamarin

13
推荐指数
1
解决办法
2269
查看次数

使用H264编解码器将FLV流式传输到带有FFMpeg的RTMP,使用C++ API将FLV流式传输到flv.js

我想使用H264编解码器使用OpenCV从网络摄像头流式传输实时视频,然后将其转换为FLV,然后通过RTMP服务器流式传输,并使用flv.js在浏览器中捕获流.基本上我有一切工作,除了我无法读取flv.js中的流.我可以打开流,ffplay所以我认为至少大多数事情都设置正确.

我目前的实施:

#include <iostream>
#include <vector>

#include <opencv2/highgui.hpp>
#include <opencv2/video.hpp>

extern "C" {
#include <libavformat/avformat.h>
#include <libavcodec/avcodec.h>
#include <libavutil/avutil.h>
#include <libavutil/pixdesc.h>
#include <libavutil/imgutils.h>
#include <libswscale/swscale.h>
}

void stream_video(double width, double height, int fps, int camID)
{
  av_register_all();
  avformat_network_init();

  const char *output = "rtmp://localhost/live/stream";
  const AVRational dst_fps = {fps, 1};
  int ret;

  // initialize video capture device
  cv::VideoCapture cam(camID);
  if (!cam.isOpened())
  {
    std::cout << "Failed to open video capture device!" << std::endl;
    exit(1);
  }

  cam.set(cv::CAP_PROP_FRAME_WIDTH, width);
  cam.set(cv::CAP_PROP_FRAME_HEIGHT, height);

  // …
Run Code Online (Sandbox Code Playgroud)

flv ffmpeg rtmp live-streaming

13
推荐指数
1
解决办法
2641
查看次数

如何使用QMediaPlayer播放流

我已经设置了服务器和视频流,以便我可以使用以下命令行使用ffplay连接到流:

ffplay rtmp://<IP>/path
Run Code Online (Sandbox Code Playgroud)

是否可以使用QMediaPlayer QMediaContent或其他东西连接到此流?

或者也许我可以使用ffserver创建任何其他类型的流.

使用与ffplay相同的路径导致"不支持的url方案!"

通过进一步的实验,我尝试了ffserver http服务器流,但结果是在MFStreamer :: doRead()中Qt崩溃

显然它应该为MFStreamer调用BeginRead,但事实并非如此.

如何使用QMediaPlayer播放视频流?

编辑:这是我的代码

videotest.cpp

#include "videotest.h"
#include <QVBoxLayout>
#include <QVideoWidget>
#include <qmediaplayer.h>
#include <QMediaContent>
#include <QNetworkAccessManager>
#include <QNetworkReply>

struct VideoTest::Private
{
    QMediaPlayer * mediaPlayer;
    QNetworkAccessManager * networkAccessManager;
    QNetworkReply * reply;
};

VideoTest::VideoTest(QWidget *parent)
    : QMainWindow(parent)
{
    d = new Private;
    d->mediaPlayer = new QMediaPlayer(this, QMediaPlayer::StreamPlayback);
    d->networkAccessManager = new QNetworkAccessManager(this);
    ui.setupUi(this);

    QVideoWidget * videoWidget = new QVideoWidget(ui.centralWidget);
    videoWidget->show();
    QPalette palette = videoWidget->palette();
    palette.setColor(QPalette::Background, QColor(0, 0, 0));
    videoWidget->setPalette(palette);

    ui.videoLayout->addWidget(videoWidget);
    d->mediaPlayer->setVideoOutput(videoWidget);

    connect(ui.playButton, …
Run Code Online (Sandbox Code Playgroud)

c++ video qt rtmp ffserver

12
推荐指数
1
解决办法
7168
查看次数