Forum

RTMP fallback

Pepijn 2015-12-19 18:17:35 UTC in Nimble Streamer

Hello,

My server restreams RTMP servers to HLS. Sometimes a RTMP server is offline. What happens is that the stream goes black and nobody is able to connect to it.

I currently have an video file of 30 seconds with the text "The server is currently unavailable." and some fading background images. I'd like to use this as fallback video.

I already read this: blog.wmspanel.com/2014/10/rtmp-pull-balancing-fallback.html
I know how to use a fallback stream but I don't know how to stream a video continuously to Nimble.
I tried ffmpeg with stream_loop -1 but this stops after one loop.

Can you give me some advice on how to stream a video file continuously to Nimble?

Thank you!

Andrey Goncharov 2015-12-19 22:14:51 UTC 

Hello Pepijn.

stream_loop is supported by FFMPEG starting from version 2.8.2, however there is another approach for older versions.

Please check this answer: http://video.stackexchange.com/questions/12905/repeat-loop-input-video-with-ffmpeg

Joël 2015-12-21 07:46:45 UTC 

Hi Pepijn

something like this:
ffmpeg -re -f concat -i "loop.txt" -c copy -f flv "rtmp://IP-nimble/live?rtmpauth=username:password/teststream"

loop.txt:
file 'input.mp4'
file 'input.mp4'
file 'input.mp4'
file 'input.mp4'
etc. etc.

With "server-side-task-control" of wmspanel
You can run the command over and over again.

I use JWplayer with two short error video messages.
live stream is not started yet and the live stream is broken please wait.

https://support.jwplayer.com/customer/portal/articles/1442607-example-a-custom-error-message

Pepijn 2015-12-21 20:19:46 UTC 

Hello,

Thank you both for answering!

I tried stream_loop with version 2.8.3 and git version g2dba040.
Both versions jumped to 1 minute after playing 30 seconds of video and stopped then.

I'm now using ffmpeg with a loop. It's far from perfect but I couldn't find a better way.
Here are my files: pastebin.com/tYnSq1af

Thank you for the help,
Pepijn

Joël 2016-01-04 19:51:02 UTC 

Hello Pepijn

Do you make any progress? I have seen your scripts.
I'm not very familiar with making Bash scripts.
But is your authentication to Nimble streamer right?
I like the way you trie to make a fallback with a secondaire rtmp stream, with the rtmp pull functionality of Nimble.

I will try it that way too for our live events, I think.
Only you have to start and stop the second stream manualy.
Otherwise the people will see the error message before and after the live event.

I prefer "server-side-task-control" for starting and repeating the second stream

Post a reply


Post a new question

Categories:

Tags:

nimbleNimble StreamerFAQHLSDVRRTMPhlsnimble streamerABRcachewmsauthNimbleAPIdvrapitranscoderSRTffmpegrtmpVODfailoversrtsldpstreamingDASHwmspanelvodudprtsppaywallsubtitlesDispersavideoRTSPyoutubeabrlivelivestreamingmp4WMSAuthMPEG-DASHgeopay-per-viewdashstreamerSLDPedgeWMSPanelWindowsencryptionuser agenthttpsUDPwhite labelconfigsmilsslFFMPEGmulticastMPEG-TSCORSaudiore-streamingmpeg-dashchunksraspberry piandroidbandwidthperformancecorsadvertizervlcS3DRMrules.confplaylistadvertisingipv6MPEGTSFastSpringRAMthumbnailFMLEVATcrossdomainipupdateSMILRecordingmpegtsaespushakamaiwowzamobileserversPullbalanceerrorTranscodem3u8SSLchromecastWowzaplaylist_dvrconfigurationbugIDreportingdownloadrepublishingdomainnimblestreamerLarixIPmpeg-tsloopVidillionHttpschunkNDIawsAWSorigincloudfrontraspianwms panelroutesCDNpublish controlcodecnimble webcam html5UIbitrateRegistration Issuedirect link32-bit Windowstwitchcache_controlitworkmelive abr support mpeg-dashwmspanelapiresumertmp abrbeirutWWDCdubaideep statsCentOS v6.4hls to multicast udpnooblogWowza AgentRemote StorageIIS Smooth StreamingcloudmediaHot-linking protectionHTTPSAbrHDSvaddioalertsjwplayer websitebaselinewhmcsnginx rtmp nimbleAV BridgeVaddioPI3 Ubuntuview timeAuthentication in HLSpricelimitOld logsscte-35screencastinterfacesDVRRecordingloadbalancingmod_rewritemetadataprofileattaching domainsID3 tagsgbpsAxiscontainerwmsauthsignhighhds streamlocalciscodatmessageWMSCONFIG_HOME.net hotlinkrestreamcostgentoo install server nimblePublic Iptranscoding using NvidiaPaywall AuthofflinedocumentationNimble streamer upgradehls restreamingTrancoderconcurrent-connectionsfileVLCniblerServer-sidedecodertransocding republishingVideo Playertasks-controlstoppedNimble Streamer versionAliasmainlost trafficlebanonlocationmanifestMP4 not playedspacepay per viewicecast urlruleseekingdvr_archivesmpeg dashhot linkingobsTCOchangeopensslamfnginxPlayReadyamazon web servicelimuxdvr stream twicesdphot-linkAXVVGExpression EncoderonSteam stopped workingblocknvencHLS vod7HLS PlayerbrandingDASH PlayeranalyticspaywalapplicationtrialMP4microsoft streamerrorsrocksoftlog traffic statsdebianscreen freezecan't registerprogressive downloadABR DASHFFmpegmultiple originsnimblesessionidprivate networkLarge DVR fileslive video on demandbandwithno WMSPanelheaderlive videoserverinterleavingmac osx installlog nimble analysertmp playbackvideojswotermarkvimeohelp errorsourceadaptiveAV1 codecload balanceNGINX-RTMPJWPLAYERSnapshotscache expirycdnvsomlive streamvideo stopViewer Stats4Kcrossdomain more then 1 domainstreamscpuDelaympeg2tsattachmentServer-Side-Task-Controldisk migrationscreen capturestereo to monovod no soundconcurrent connectiondvr streamconnectivityUbuntu 20 ARM - AWSunique visitorAWS 3buttdrmresourceaes encryptionsubscriptionfallbackamazonControl APIWidevineTranscoderLive streamingsecurityABR HLS Bitrateslive pull settingsWMSPanel settingsrtmp for YouTubenot foundCPU LoadpullAS3udp streamingoutrateicecastnimble streamer vod hls transmuxingloggingtwitch larix broadcaster androidDVRSettingsinstall players setup ready to goDelete recordsApplelearnerinsert logovideo loopdvr streamsAVCaptureMovieFileOutputblock downloadautomationnimble streamer web server php script pageNimble Streamer APIlivestreamstarttime duration seekpointrebootmonitorNimble CapacityABR DVR problemPost processingadd_chunk failedfake extensionMPEG DASHUbuntu artful 17.10Transcoder MPEG DASHnimble.confrtmp republishing transcodeIIS Media Servicsapi accessDeep statsLive Switcherweb playerstatus:errorFFMPEG;RTMP;I/O errortranscodingnot to stealLive Broadcastcontent-dispositionMPEG-Dashlarix broadcasterNimble ServerpaymentStreaming routeHotlinking ProtectionbroadcasterOSXRTMP republishstatsPIDreloadadvp9contentRTMP RepublishdemandIOSpremium featureserver incorrect timeThumbnailsLiveLIVEHLS StreamingHow to do live stream with multiple audio tracksoundHLS Meta Tag editing.Progressivenimble aliasesdelaympeg4Load-Balancingnimble streamer mpeg-ts multiple inputswmsAuthSignthumbnail dvr-thumbnailrmtpno internettranscoder nimblereportsavoid refreshraspberrySecureJetson Nanopublish streamStream Delaytraffichd25Larix BroadcasterAArch64Androiduser_agentdvr on wmspanelVideo cant be playedS3 AWSBroadcastvbv-maxratetranscodeRepublishingdockerlivestream bitratedomain lockVOD HLS streaming on public IPoutputUsers limitcloudflareVR-360Failoveranalisysscteincoming streamno soundInvalid frame headerPacketizingABR bitratesbuildHTML5 playerGopNimbleStreamerav1 codecfastspringmp2 audioNimble streamerdata slicesaliasplayer sldplatency.movalias routestoragedistributionsoftware versionadjustqataritworkscdnvideo.jsspeedup my videoiOSissuepricinggoogle cloud storagecompatibility protocolsRAM LoadtransocderlivestreaminCSSactionscript 3server ssl errorscte35ubuntu 18Teradek Decoderdiskstorage space available3.6.1-1dissapointmentpay-per-minuteSO_RCVBUFbuffering videogpurestarthelpFallbackcredentialsFairplayincomingmulti-viewerPaywallvideo and audio not matchhow-tomanage_dvrError when installingrulesDVRStreamsaws amazona recordwirecasthttp serverSSL requestserver ip21hotlink protectionultra low latencyVP9sha265broadcast videoprogressivewebhookdvr to livenimble on cloudprerollrtpnimble dvrdurationBandwidthdynamic linksTLSV 1.2 CertificatePORTDVR SettinganalyseStreamIDUDP MulticastMax connectionMPEG2 Videologo in streamDVR Setting limitssaibufferRIST Bondingplayoutvideo audioCross DomainSRT protocolabr fallbackNimble connectionsmd5artifactsrtsp push androidtuningvideo streamingQuickTime

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the Privacy Policy. If you want to know more or withdraw your consent to all or some of the cookies, please refer to the Privacy Policy.
By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to the use of cookies.