Devo eseguire un semi-live-stream. Ho usato il modulo Nginx-rtmp e poi spinto i contenuti ad esso tramite ffmpeg usando:FFMPEG ha trasmesso il flusso RTMP non funzionante su Android e iPhone
ffmpeg -re -i content.mp4 -r 25 -f fvl "rtmp://rtmp.server.here"
Il flusso funziona bene quando l'ho aperto in VLC da "rtmp: //rtmp.server.here"
Ma Devo anche creare app per iPhone e Android che riproducano questi flussi. E questo è il problema, lo streaming non funziona su Android e iPhone.
Se utilizzo Wowza streaming cloud e stream su cloud Wowza invece del mio server nginx-rtmp, la stessa app scritta per Android & iPhone può riprodurre il flusso in modo corretto.
Ora nginx-rtmp non funziona correttamente oppure cos'altro? Ho anche provato crtmpserver e succede la stessa cosa.
Quello che voglio acheive: devo sviluppare un sistema in cui siamo in grado di monte di una TV-canale (disporre dei diritti per esso) a un server e poi fare un sito web, un'applicazione Android & app iPhone quindi i consumatori possono guarda il canale live.
La parte di caricamento di cui ho un indizio, probabilmente una scheda di sintonizzazione TV e Open Broadcast Software per lo streaming sul server. Ma la riproduzione dal vivo è nuova per me.
UPDATE: Ho anche usato ffprobe ed ecco l'output. (Si veda l'ultima riga)
[email protected]:~$ 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
Aggiornamento 2: ho ottenuto il mio flusso di lavoro utilizzando copia con licenza del server di streaming Wowza. Tutto funziona ora. Ma ovviamente questa non sarà un'opzione per tutti, ecco perché non la sto postando come risposta.
Puoi provare a usare 'ffprobe' per verificare se ci sono differenze di codifica tra il tuo stream e l'output di Wowza. – aergistal
@aergistal Ho aggiornato la risposta con l'output ffprobe. – BlackDivine
Confronta l'output 'ffprobe' per i flussi Wowza e Nginx –