Bla*_*ine 17 iphone android ffmpeg nginx rtmp
我必须做一个半直播.我使用了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. 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
Run Code Online (Sandbox Code Playgroud)
更新2: 我使用Wowza流媒体服务器的许可副本让我的流工作.现在一切都有效.但显然这对每个人来说都不是一个选择,这就是为什么我不把它作为答案发布.
RTMP 协议的使用非常有限,主要用于视频录制。没有理由使用它来播放,因为移动设备本身不支持 RTMP,您认为建议移动用户在设备上安装 VLC 或类似应用程序不是一个好主意吗?
插件nginx-rtmp-module已合并到 Nginx+ 中,以在 Nginx 中创建一个全面的录制媒体服务器,作为 Wowza 媒体服务器的替代品或实现 HLS 以通过 HTTP 进行播放。该插件可以与Nginx开源版本一起使用。
要使您的视频内容可供移动设备使用,您只有 2 个选项,每个选项都通过 HTTP(而不是 RTMP)工作:
HTTP直播,参见示例:
location / {
hls;
hls_fragment 5s;
hls_buffers 10 10m;
hls_mp4_buffer_size 1m;
hls_mp4_max_buffer_size 5m;
root /var/video/;
}
Run Code Online (Sandbox Code Playgroud)HTTP伪流,参见示例
location /video/ {
mp4;
mp4_buffer_size 1m;
mp4_max_buffer_size 5m;
mp4_limit_rate on;
mp4_limit_rate_after 30s;
}
Run Code Online (Sandbox Code Playgroud)
另一面是安全。如何保护视频流URL?预先生成的过期 URL 是个好方法,您可以尝试,请参阅我的示例。
| 归档时间: |
|
| 查看次数: |
2679 次 |
| 最近记录: |