【发布时间】:2015-08-15 21:36:41
【问题描述】:
我必须进行半直播。我使用了 Nginx-rtmp 模块,然后通过 ffmpeg 将内容推送到它:
ffmpeg -re -i content.mp4 -r 25 -f fvl "rtmp://rtmp.server.here"
当我从“rtmp://rtmp.server.here”在 VLC 中打开流时,流运行良好
但我还必须制作播放这些流的 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. 25.101 / 56. 25.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 11.102 / 5. 11.102
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
[flv @ 0x267cc60] Stream discovered after head already parsed
Last message repeated 1 times
Input #0, flv, from 'rtmp://stage.funworldpk.com/live':
Metadata:
Server : NGINX RTMP (github.com/arut/nginx-rtmp-module)
displayWidth : 320
displayHeight : 240
fps : 20
profile :
level :
Duration: 00:00:00.00, start: 288.763000, bitrate: N/A
Stream #0:0: Video: h264 (High), yuv420p, 320x240 [SAR 1:1 DAR 4:3], 20 fps, 20 tbr, 1k tbn, 40 tbc
Stream #0:1: Data: none
Stream #0:2: Audio: aac (LC), 22050 Hz, stereo, fltp
Unsupported codec with id 0 for input stream 1
更新 2: 我使用 Wowza 流媒体服务器的许可副本让我的流工作。现在一切正常。但显然这不是每个人的选择,这就是为什么我不将其发布为答案。
【问题讨论】:
-
您可以尝试使用
ffprobe来检查您的流和Wowza 输出之间是否存在编码差异。 -
@aergistal 我已经用 ffprobe 输出更新了答案。
-
比较 Wowza 和 Nginx 流的
ffprobe输出 -
问题解决了吗?
-
@Anatoly 我想我做到了。在这种情况下,解决方案是摆脱不稳定/错误的开源解决方案。并以每月 60 美元的价格使用 Wowza 流媒体服务器许可证:|
标签: android iphone nginx ffmpeg rtmp