ffmpeg
gestisce lo streaming RTMP come input o output e funziona correttamente.Utilizzo di FFMPEG per lo streaming continuo di file video su un server RTMP
voglio per lo streaming dei video (una playlist dinamica gestita da uno script python) a un server RTMP, e sto attualmente facendo qualcosa di molto semplice: in streaming il video uno per uno con ffmpeg per il server RTMP, tuttavia questo causa una interruzione di connessione ogni volta che un video termina e lo streaming è pronto per essere avviato all'avvio del video successivo.
Mi piacerebbe trasmettere in streaming quei video senza interruzioni di connessione ininterrottamente, quindi il flusso potrebbe essere visualizzato correttamente.
Io uso questo comando per riprodurre in streaming le video uno per uno per il server
ffmpeg -re -y -i myvideo.mp4 -vcodec libx264 -b:v 600k -r 25 -s 640x360 \
-filter:v yadif -ab 64k -ac 1 -ar 44100 -f flv \
"rtmp://mystreamingserver/app/streamName"
Ho guardato per alcune soluzioni su internet per molti giorni, e ho trovato alcune persone che parlano su come utilizzare una named pipe come input in ffmpeg
, ho provato e non ha funzionato bene dal ffmpeg
non solo chiude lo streaming RTMP quando arriva un nuovo video ma si chiude anche da solo.
C'è un modo per farlo? (Streaming di una playlist dinamica di video con ffmpeg
al server RTMP senza interruzioni di connessione
L'utilizzo di una pipe denominata è la giusta direzione. Puoi approfondire come ciò non ha funzionato per te? – blahdiblah
@blahdiblah Ho usato la named pipe come input in ffmpeg, ffmpeg pause e attendo alcuni dati dalla pipe, quindi ho provato 'cat video.mp4> fifo' e ffmpeg avviare lo streaming e uscire dopo lo streaming del video. Penso di non sapere come usare la named pipe nel modo giusto, quando ho fatto 'cat video1.mp4 video2.mp4> fifo' ffmpeg mostra l'errore' stream 4, offset 0x1d83c: file parziale' dopo lo streaming del primo video. So che sono io che sto sbagliando, devo passare i dati del video in modo corretto attraverso la pipa. – KKetch
Sono riuscito a trasmettere in streaming una playlist statica di video utilizzando per ogni video un pipe (ex vid1.mp4 -> pipe1, vid2.mp4 -> pipe2 ecc.). Quindi scrivo in un singolo flusso chiamato pipe "stream" in questo modo 'cat pipe1 pipe2 pipe3> stream', e io uso la pipe stream come input in FFMPEG per pubblicare il mio stream, ma poiché cerco una playlist dinamica ** come può invio più video alla pipe "stream" per mantenere vivo il flusso? ** Non l'ho ancora capito. (Nota, ad eccezione del primo video, ho dovuto tagliare i metadati di ogni file video usando il comando tail per farlo funzionare) – KKetch