我们正在使用VideoCore lib进行实时流媒体应用,并开始达到一定的限制,例如项目维护,保存流,纵向视频格式,外部摄像头源等.
寻找替代iOS RTMP流媒体库,一个更新的.有任何测试建议?谢谢!
iphone sdk是否支持从RTMP流播放mp4文件?我希望将文件存储在CloudFront中(在标记为流的存储桶中),并希望有一个iPhone应用程序能够播放它们.这是可能的,还是我最好将文件作为mp3存储在CloudFront上,而不是通过RTMP启用流媒体?
我正在尝试使用NDK r7b构建FFMPEG的一体化静态二进制文件,一切正常,直到我尝试使用RTMP支持构建它.
我是来自https://github.com/guardianproject/android-ffmpeg和librtmp2.4以及自定义配置这样的来源
.configure \
--target-os=linux \
--cross-prefix=arm-linux-androideabi- \
--arch=arm \
--sysroot=/home/andrey/android-ndk-r7b/platforms/android-3/arch-arm \
--enable-static \
--disable-shared \
--disable-symver \
--enable-small \
--disable-devices \
--disable-avdevice \
--enable-gpl \
--enable-librtmp \
--prefix=../build/ffmpeg/armeabi \
--extra-cflags=-I../rtmpdump/librtmp \
--extra-ldflags=-L../rtmpdump/librtmp \
Run Code Online (Sandbox Code Playgroud)
和rtmpdump目录位于与ffmpeg相同的级别.据我所知,我的配置中的最后两个字符串说明编译器可能找到librtmp的来源.但我得到的只是ERROR: librtmp not found
我并没有对NDK进行过任何考验,而且我错过了一些重要的部分,但我自己找不到它.
我试图使用phantomjs创建视频流,从网址创建截图,然后它将框架管道到ffmpeg,以便他可以使用它将视频流传输到rtmp网址.这是我到目前为止所尝试的:
phantomjs runner.js | ffmpeg -f image2pipe -vcodec png -c:a copy -c:v libx264 -f flv rtmp://localhost/mystream
Run Code Online (Sandbox Code Playgroud)
这是脚本:
var page = require('webpage').create();
page.viewportSize = { width: 640, height: 480 };
page.open('http://www.goodboydigital.com/pixijs/examples/12-2/', function () {
setInterval(function() {
page.render('/dev/stdout', { format: "png" });
}, 25);
});
Run Code Online (Sandbox Code Playgroud)
这是输出:
ffmpeg version 3.0.2 Copyright (c) 2000-2016 the FFmpeg developers
built with Apple LLVM version 7.3.0 (clang-703.0.29)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.0.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libxvid --enable-vda
libavutil 55. 17.103 / …
Run Code Online (Sandbox Code Playgroud) 我正在编写一个Red5应用程序,它通过RTMP向Flash客户端提供一对一的视频聊天.
遗憾的是,我能够找到的大多数教程都是粗略的,而且当涉及API概念和预期用法时,Red5本身的文档往往含糊不清.
简而言之,我有点卡住并寻找关于Red5 ApplicationAdapter
实现的提示.Gnarly细节如下:
首先,这些联系有两种:访客和顾问.访问者应该能够指出它希望与哪个顾问沟通.只要顾问不忙于为另一个顾问服务,顾问就会直接与请求的访问者建立联系.
显然,每个RTMP连接都有双向流量:发送和接收视频.从服务器的角度来看,连接带来了一堆视频流,这些视频流可以通过请求分配接收端点.
由于几个视频对话可以同时进行,因此应用程序的主要任务是处理访客流到顾问的映射,并提供一个列表,通过AMF指示每个顾问的状态(忙/可用).
所以,总而言之,我非常清楚我的目标是什么,但如何用Red5实现它仍然有点神秘.
希望有人可以在以下任何或所有方面启发我:
建立连接类型(访客/顾问)的最简单方法是什么?
应该使用哪些API类来实现持久的,全局可访问的活动连接列表,以报告每个顾问的状态?
当目标是将特定访问者连接到选定的顾问时,如何动态切换接收端点?
我正在尝试在远程服务器上播放视频文件.视频格式为flv,服务器为Flash Media Server3.5.
我将通过RTMP连接到服务器并使用Android Media Player实现视频文件的palyback.
真的,有可能吗?任何帮助都是我的荣幸.
我想定期拍摄RTMP直播视频流的快照.我可以使用VLC看到rtmp视频流.这是rtmp网址:
rtmp://antena3fms35livefs.fplive.net/antena3fms35live-live/stream-antena3_1
Run Code Online (Sandbox Code Playgroud)
我使用下面的命令来捕获快照,根据官方的FFmpeg网站在这里:
ffmpeg -i rtmp://antena3fms35livefs.fplive.net/antena3fms35live-live/stream-antena3_1 -f image2 -vf fps=fps=1 out%d.png
Run Code Online (Sandbox Code Playgroud)
该命令产生以下输出:
ffmpeg version N-64667-gd595361 Copyright (c) 2000-2014 the FFmpeg developers
built on Jul 14 2014 22:09:48 with gcc 4.8.3 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzl
libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amr
enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --ena
libavutil 52. 92.100 / 52. 92.100
libavcodec 55. 69.100 / 55. 69.100
libavformat 55. 47.100 / 55. 47.100
libavdevice 55. 13.102 / 55. 13.102
libavfilter 4. 10.100 / 4. 10.100 …
Run Code Online (Sandbox Code Playgroud) 我想以Periscope的方式进行直播.我在网上做了一个快速搜索,发现像ffmpeg一样的库使用本机库,但根据MediaCodec编码应该直接支持Android SDK吗?
https://developer.android.com/reference/android/media/MediaCodec.html
所以我想知道为什么编码需要外部本机库?
我也尝试了一些库,但它们似乎太慢了,特别是对于高比特率(我在Nexus 5X上获得16个fps,1280x720,2500Kbps,我希望达到1080),流行的广播应用程序如何做到这一点?
由于涉及如此多的处理,似乎不可能使用普通电话(不是顶级线路)实现高质量的流媒体.
如果您正在尝试开发交互式直播应用程序,则需要依赖超低(实时)延迟.例如,用于视频会议或远程实验室.
适合这种情况的两种协议是:
*WebRTC:由于我试图为更大的受众提供互相交流的可能性,因此WebRTC并不合适.因为据我所知,它不是为更多的观众设计的.
我的问题:
我应该为这个用例选择哪一个?RTSP/RTP还是RTMP?
哪种协议可以提供有关端到端延迟,会话启动时间的更好结果?
哪一个消耗更多的硬件资源?
RTMP似乎使用持久TCP连接.但是哪种协议用于传输?它不能是TCP,因为这无法确保实时延迟?
一般来说,使用这两种协议的利弊是什么?
我没有在科学论文或书籍中找到这两个协议的任何比较.只有着名的移动直播应用Periscope正在使用RTMP.
Instagram或Facebook等其他应用程序例如提供与流媒体的基于文本的交互.如果开发人员想要构建基于交互式直播流的下一个"杀手级应用程序":我认为这个问题是必不可少的.
我正在为PC浏览器开发音频流媒体网络服务.
我们希望使用rtmpt(e)
协议进行Flash插件流式传输.
主HTML页面包含https://
URL.
问题是,当我们的SWF尝试连接流服务器(通过HTTP隧道)时,某些浏览器(即Chrome)会在URL栏中的安全图标上显示警告:
您与???.???.com的连接是使用128位加密进行加密的.但是,此页面包含其他不安全的资源.其他人在传输过程中可以查看这些资源,攻击者可以修改这些资源以更改页面外观.
并在开发者控制台上:
The page at 'https://***.***.com/' was loaded over HTTPS, but displayed insecure content from 'http://stream.***.net/fcs/ident2': this content should also be loaded over HTTPS.
The page at 'https://***.***.com/' was loaded over HTTPS, but displayed insecure content from 'http://***.***.***.113/open/1': this content should also be loaded over HTTPS.
...
Run Code Online (Sandbox Code Playgroud)
我认为这是因为Flash在访问HTTP时使用了浏览器的URL加载工具.
我该如何避免这些警告?
我们不想使用,rtmp(e)
因为1935
可能会被防火墙阻止在用户环境中,也不会rtmps
因为我们的流媒体服务器不支持它.
我们不希望http://
因为要求而使用主HTML.