Forum

Save multiple rtmp live streams to mp4 with ffmpeg with task control

Joël 2015-04-21 12:29:39 UTC in Nimble Streamer

A very nice option is to save a live stream with ffmpeg in "server side task control". The main purpose of direct recording on the origin Nimble-server is: Remux and Uploading of the video files are not needed anymore. second: when you have a live event, you have a local copy of your live event and a second on the server.
What I discover by recording a livestream with multible bitrate streams by starting 3 seperate ffmpeg task in the Wmspanel, it takes about 10sec before the "playback" will start in the webplayer(jwplayer). playing the files on a ipad
providing a smil playlist by nimble.
Can you give me a direction of what is the best way the record a stream with ffmpeg, without remuxing the files again.

current tasks in the wmspanel
ffmpeg -re -i rtmp://localhost/rtmp/video_1 -c copy "/mnt/archive/vod/video_360p-1.mp4"

ffmpeg -re -i rtmp://localhost/rtmp/video_2 -c copy "/mnt/archive/vod/video_480p-2.mp4"

ffmpeg -re -i rtmp://localhost/rtmp/video_3 -c copy "/mnt/archive/vod/video_1080p-3.mp4"

Alex Pokotilo 2015-04-21 14:16:32 UTC 

I cannot get what you see in ipad comparing to web players

Joël 2015-04-21 17:51:15 UTC 

Hi
I use the same jwplayer for both, desktop and mobile devices as webplayer.
But i think maybe its the timestamps or the duration time that is not the same of each mp4 file, because of the seperate ffmpeg tasks. Maybe option -copyts will copy the original timestamps of the live encoder (fmle).
Or can I record the 3 streams in one task?

Alex Pokotilo 2015-04-21 22:06:18 UTC 

save only one bitrate and call transcoding after event. you can create script that call several ffmpeg commands. One to save original mp4 file and the rest for transcoding. I think calling several commands to transcode on the fly bad idea.

Joël 2015-04-22 07:14:17 UTC 

Yes, Transcoding several resolutions on the fly, is a bad idea. Too CPU intensive. Transcode one by one after event is beter. But actually, you don't want to transcode at all, because its already done. yes we can make script who can call more than one ffmpeg command. So the frames will start almost on the same time.
Again, I will do some several tests with copy the original timestamps during recording of the livestreams, or cutting the beginning and the end of the files afterwards, so the start and duration wil be the same.

Post a reply


Post a new question

Categories:

Tags:

nimbleNimble StreamerFAQHLSDVRRTMPhlsnimble streamerABRwmsauthcacheNimbleffmpegdvrAPIapitranscoderVODstreamingfailoverDASHwmspanelrtmpvodudprtsppaywallsubtitlesRTSPDispersayoutubelivelivestreamingmp4MPEG-DASHWMSAuthpay-per-viewgeodashvideostreamerabrWindowsencryptionUDPhttpswhite labeluser agentconfigsmilFFMPEGmulticastsslaudioMPEG-TSedgeCORSchunksraspberry pire-streamingandroidsldpbandwidthmpeg-dashadvertizervlcDRMrules.confadvertisingipv6FastSpringRAMwms panelthumbnailFMLEVATcrossdomainupdatempegtsRecordingplaylistSMILakamaiaespushserversSRTwowzaSSLerrorm3u8Transcodebalanceplaylist_dvrchromecastWowzareportingconfigurationsrtbugdownloadIDS3nimblestreamerdomainperformancecorschunkmpeg-tsraspianpublish controlcodecWMSPanelmobilerepublishingVidillionHttpsIPloopawsnimble webcam html5UIRegistration Issuedirect link32-bit Windowstwitchanalysecache_controlitworkmelive abr support mpeg-dashrtmp abrbeirutWWDCdubaideep statshls to multicast udplogIIS Smooth StreamingcloudmediaCDNHTTPSAbrHot-linking protectionHDSvaddioMPEGTSalertsNDIViewer Statsjwplayer websitewhmcsbaselineAuthentication in HLSCentOS v6.4nginx rtmp nimblepricedurationAV BridgelimitOld logsscreencastVaddioPI3 Ubuntuview timeattaching domainswmspanelapiinterfacesWMSCONFIG_HOMEmessageDVRRecordingrestreamcostloadbalancingoriginmetadatamod_rewriteprofileAxisgbpsID3 tagswmsauthsignhighhls restreaminghds streamVLCciscolocalresumenibler.net hotlinkVideo Playertransocding republishingdecodergentoo install server nimbleAliaslost traffictranscoding using NvidiaPublic IpPaywall Authdocumentationofflineconcurrent-connectionsTrancoderfileipicecast urlrulelebanonlocationmanifesthot linkingMP4 not playedspaceServer-sidechangetasks-controlamfstoppedplayoutseekingmaindvr streamconnectivityunique visitoronPlayReadylimuxamazon web servicealiasdata slicesdvr stream twicepay per viewHLS vodAXVVGhot-linkanalyticsapplicationpaywalblockmpeg dashTCOopenssl7brandingtrialMP4microsoft streamerrorsExpression Encoderrocksoftlog traffic statsdebianHLS Playerlive video on demandDASH PlayerbandwithABR DASHprogressive downloadmultiple originsFFmpegnimblesessionidserverlog nimble analysertmp playbackvideojsSnapshotsbitrateprivate networkadaptiveAV1 codecPullJWPLAYERNGINX-RTMPno WMSPanellive videomac osx installsoundHLS Meta Tag editing.streamsattachmentwotermarksourcecrossdomain more then 1 domain4Khelp errorvimeoconcurrent connectionvod no soundload balanceFairplaybuttcdnvsomRemote StorageWowza Agentlive streamnot foundWidevinepullfallbackamazonControl APIAS3TranscoderLive streamingsecuritympeg2tsServer-Side-Task-Controldisk migrationinstall players setup ready to goDVRSettingstwitch larix broadcaster androidAppleDelete recordsstereo to monoscreen capturedrmresourceaes encryptionicecastsubscriptionvideo looplive pull settingsABR HLS Bitratesstarttime duration seekpointrebootrtmp for YouTubemonitorIIS Media Servicsrtmp republishing transcodenimble.confDeep statsapi accessoutrateinterleavingweb playerdvr streamsnimble streamer web server php script pageautomationNimble Streamer APIlivestreamnimble streamer vod hls transmuxingloggingscreen freezecan't registercontent-dispositionNimble CapacityABR DVR problemlearnerheaderactionscript 3Cross DomainLive Switcherinsert logoDVRStreamsNimble Servernot to stealLive Broadcastblock downloadAVCaptureMovieFileOutputUbuntu artful 17.10Transcoder MPEG DASHMPEG DASHadd_chunk failedPost processingfake extensionbroadcastertranscodingFFMPEG;RTMP;I/O errorstatus:errorHotlinking ProtectionStreaming routeMPEG-Dashlarix broadcasterThumbnailsserver incorrect timepremium featureLIVELivenimble on cloudroutesprerollpaymentHow to do live stream with multiple audio tracknimble aliasesProgressivestatsincoming streamno soundreloadvp9adSecureRTMP republishrmtpno internetdemandlivestreamintransocderAndroiduser_agentdvr on wmspanelS3 AWSIOSrestartPIDHLS Streamingreportsraspberryavoid refreshthumbnail dvr-thumbnailwmsAuthSignnimble streamer mpeg-ts multiple inputsLoad-BalancingDVR SettingPORTlatencyadjustissuepricingcredentialstranscodeRepublishingdelaympeg4HTML5 playertranscoder nimbleVR-360Failoverhttp servera record21server ipav1 codecNimble connectionsabr fallbackBroadcastLarixABR bitratesPacketizingbuildTeradek Decoderubuntu 18SLDPssaiDVR Setting limitbufferartifactsrtsp push androidcache expiryQuickTimevideo streamingtraffichd25publish streamAArch64buffering videoSO_RCVBUFdissapointmentpay-per-minuteAWSspeedup my videoiOSnimble dvrlivestream bitrateUDP Multicastlogo in streamMPEG2 VideoCSSfastspringmp2 audioprogressivewebhookdvr to liveoutputcloudflareVOD HLS streaming on public IPdomain lockRTMP Republishcontentvideo and audio not matchcloudfrontrulesError when installingdistributionstoragealias route.movanalisyssctestorage space availabledisk3.6.1-1qataritworkscdnvideo.js

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.