Skip to content

Technical Plugin Live

Daniel Neto edited this page Oct 29, 2026 · 1 revision

Technical: Live plugin

Coordinates RTMP ingest callbacks, session history, HLS playback and restream control.

Audience: developers, advanced administrators and AI-assisted diagnosis. Plugin catalog.

Source baseline

  • Review date: 2026-10-29. Method: static source analysis; runtime/provider behavior was not exercised.
  • Code ownership: AVideo Streamer repository.
  • Reported version: 15.3.
  • Source revision: 7d48f2dfc0289236718a3f9fba7c5ffecff4a37f.
  • Entry class file: Live.php.

Confirm the installed plugin version independently of the Streamer version. Configuration defaults below are not a dump of this installation's saved settings.

Behavior and operational checks

The PHP plugin coordinates an external live server. on_publish.php invokes Live::_on_publish(), which requests restream work and dispatches recording hooks. HLS generation, every relay destination and recording conversion are separate stages. Correlate the live-history ID and normalized timestamps across them.

Dependencies

Plugin Required by declaration Source reason
PayPerViewLive Optional Optional pay-per-view gating for live streams
PlayLists Optional Optional scheduled/rebroadcast playlist integration
VideoPlaylistScheduler Optional Optional calendar/scheduling integration

Literal runtime plugin references: CustomizeAdvanced, CustomizeUser, LiveUsers, Meet, PayPerViewLive, PlayerSkins, SecureVideosDirectory, SendRecordedToEncoder, TheaterButton, VideoHLS. These calls do not mean every referenced plugin is mandatory.

Hook integration

Override Implementation
getTags() Live.php:47
getHTMLMenuRight() Live.php:75
getLivePanel() Live.php:91
getLiveApplicationArray() Live.php:98
getDataObjectAdvanced() Live.php:425
getDataObjectDeprecated() Live.php:488
getDataObjectExperimental() Live.php:508
getHeadCode() Live.php:718
getFooterCode() Live.php:782
getChartContent() Live.php:1701
dataSetup() Live.php:1717
getVideosManagerListButtonTitle() Live.php:1930
getPluginMenu() Live.php:1940
getUploadMenuButton() Live.php:4140
getWatchActionButton($videos_id) Live.php:4782
getPermissionsOptions() Live.php:4824
getUserNotificationButton() Live.php:4887
executeEveryMinute() Live.php:4892
executeEveryHour() Live.php:4922
on_publish_done($live_transmitions_history_id, $users_id, $key, $live_servers_id) Live.php:4937

Configuration assignments

These are direct assignments inside getEmptyDataObject(), not evaluated effective defaults. Stored plugins.object_data, globals, structured values and conditional branches may alter runtime behavior. Private/default credential values are omitted.

Field Literal default or expression type Literal source label/help Evidence
topCopyKeysButtonTitle Private setting; value omitted — source
hideTopCopyKeysButton Private setting; value omitted Hide Top Copy Live Keys Button: This will hide the "Copy Live Keys" button on the top menu bar source
button_title "LIVE" Button Title: This is the title that will appear in your button to enter in the Live panel source
server_type Computed/structured; inspect source Server type: If is set to public you do not need to configure anything source
server Computed/structured; inspect source RTMP Server URL: Usually it is source
playerServer Computed/structured; inspect source Player URL: This is a URL to your NGINX server, this URL will be used by the HTML5 player, If your site is HTTPS your player URL MUST be HTTPS as well, usually it is source
stats Computed/structured; inspect source Stats Page URL: When you installed the NGINX you also install the stat.xsl, we will use it to grab the information when you have livestreams running, usually it is source
restreamerURL Computed/structured; inspect source Restreamer URL: https://github.com/WWBN/AVideo/wiki/Restream source
controlURL Computed/structured; inspect source Control URL source
controlServer Computed/structured; inspect source Control Server source
disableRestream false Disable Restream: If you check this, we will not send requests to your Restreamer URL source
whoCanRestream Computed/structured; inspect source Who can Restream source
restreamStandAloneFFMPEG '' — source
restream_resolution Computed/structured; inspect source Restream Output Resolution: Resolution used when re-encoding the live stream. Bitrate, H.264 profile and audio are selected individually for YouTube, Facebook, Twitch, LinkedIn or a generic RTMP destination. Choose "Passthrough" only when the source already complies with every destination. source
enableRestreamWatchdog true Enable Restream Watchdog: When enabled, executeEveryMinute() will detect restreams that unexpectedly disconnected from their destination (e.g. Broken pipe, Error muxing a packet, Error writing trailer, unexpected FFmpeg termination) while the source is still live, and will automatically restart them using the existing restream start flow. Enabled by default. source
restreamWatchdogCooldownSeconds 30 Restream Watchdog Cooldown (seconds): Minimum time to wait between automatic restart attempts for the same restream. Default: 30 seconds. source
restreamWatchdogMaxAttempts 3 Restream Watchdog Max Attempts: Maximum number of automatic restart attempts allowed within the attempts window below before the watchdog stops retrying automatically for that restream. Default: 3. source
restreamWatchdogWindowSeconds 900 Restream Watchdog Attempts Window (seconds): Time window used to count automatic restart attempts towards the max attempts limit above. Default: 900 seconds (15 minutes). source
restreamWatchdogHealthyResetSeconds 600 Restream Watchdog Healthy Reset (seconds): How long a restream must stay healthy (running) before the automatic restart attempt counter is reset to zero. Default: 600 seconds (10 minutes). source
restreamWatchdogBackoffSequenceSeconds Computed/structured; inspect source Restream Watchdog Backoff Sequence (seconds): Comma-separated reconnect delay for the 1st, 2nd, 3rd... automatic restart attempt (the last value repeats for any further attempt). Applied on top of "Restream Watchdog Cooldown" as a floor. Default: 2,5,10,20,30. source
restreamWatchdogBackoffJitterPercent 20 Restream Watchdog Backoff Jitter (%): Random +/- percentage applied to each backoff delay above, so multiple restreams reconnecting after the same outage do not all retry at the exact same instant. Default: 20. source
restreamDiagnosticSnapshotIntervalSeconds 300 Restream Diagnostic Snapshot Interval (seconds): Minimum time between best-effort system diagnostic snapshots (CPU/memory/disk/network/DNS/container limits) captured when a restream disconnects unexpectedly. Rate limited to avoid overhead on repeated failures. Default: 300 seconds (5 minutes). source
restreamForceProtocolForYouTubeTest '' Restream: Force Protocol for YouTube (testing only): DIAGNOSTIC USE ONLY, leave "Off" for normal operation. Forces every YouTube restream destination configured via the "Local" provider to use RTMP or RTMPS regardless of what was configured, without changing any encoding parameter or affecting Facebook/Twitch/other destinations. Use this temporarily to isolate whether disconnects are specific to RTMPS, then set back to Off. source
restreamForceProtocolForYouTubeTest Computed/structured; inspect source Restream: Force Protocol for YouTube (testing only): DIAGNOSTIC USE ONLY, leave "Off" for normal operation. Forces every YouTube restream destination configured via the "Local" provider to use RTMP or RTMPS regardless of what was configured, without changing any encoding parameter or affecting Facebook/Twitch/other destinations. Use this temporarily to isolate whether disconnects are specific to RTMPS, then set back to Off. source
restreamFifoEnabled true Restream: Enable FIFO Output Recovery: When enabled, restream output uses FFmpeg's "fifo" muxer to automatically recover the OUTPUT connection to the destination (e.g. a brief network hiccup or TLS stall) without restarting the whole FFmpeg process, in addition to the existing Restream Watchdog which remains a second, unconditional recovery layer for anything the FIFO layer cannot recover on its own. Only used for destinations whose provider is in the allow-list below, and only when this host's FFmpeg build is confirmed (via a real capability probe, not just a version number) to support every option this feature needs; every other destination (and passthrough/stream-copy outputs) silently keeps using the previous, unmodified output path. Enabled by default for YouTube: validated with FFmpeg 6.1 against adaptive HLS sources and RTMP/RTMPS destinations that drop and come back mid-stream. source
restreamFifoAllowedProviders 'youtube' Restream: FIFO Allowed Providers: Comma-separated list of destination providers allowed to use the FIFO output recovery layer above (detected from the destination URL, e.g. "youtube", "facebook", "twitch", "linkedin", "generic"). Default: youtube only, the only provider validated against this feature so far. Ignored while the setting above is Off. source
restreamFifoAttemptRecovery true Restream: FIFO Attempt Recovery: Maps to FFmpeg's fifo muxer "attempt_recovery" option: when the output connection drops, try to reopen and resume it instead of ending the stream. Default: enabled. source
restreamFifoRecoverAnyError false Restream: FIFO Recover Any Error: Maps to FFmpeg's fifo muxer "recover_any_error" option: also attempt recovery for error types FFmpeg does not classify as a connection failure. More aggressive; keep Off unless a specific destination needs it. source
restreamFifoRestartWithKeyframe Private setting; value omitted Restream: FIFO Restart With Keyframe: Maps to FFmpeg's fifo muxer "restart_with_keyframe" option: after a recovered reconnect, resume output starting at the next keyframe instead of a mid-GOP frame, avoiding a visibly broken/green segment on the destination. Default: enabled. source
restreamFifoDropPktsOnOverflow true Restream: FIFO Drop Packets on Overflow: Maps to FFmpeg's fifo muxer "drop_pkts_on_overflow" option: if the internal recovery queue fills up faster than the destination can accept data, drop the oldest queued packets instead of blocking/crashing the encoder. Default: enabled. source
restreamFifoRecoveryWaitTime 2 Restream: FIFO Recovery Wait Time (seconds): Maps to FFmpeg's fifo muxer "recovery_wait_time" option: how long to wait before each reconnect attempt. Allowed range: 0.1-30. Default: 2 seconds. source
restreamFifoRecoveryWaitStreamtime false Restream: FIFO Recovery Wait Streamtime: Maps to FFmpeg's fifo muxer "recovery_wait_streamtime" option: measure the recovery wait time above using stream time instead of real (wall-clock) time. Default: Off (wall-clock). source
restreamFifoQueueSize 8192 Restream: FIFO Queue Size: Maps to FFmpeg's fifo muxer "queue_size" option: number of packets buffered while a reconnect is attempted. Allowed range: 8-20000. Default: 8192 (matches this codebase's existing -thread_queue_size input buffering). source
restreamFifoMaxRecoveryAttempts 30 Restream: FIFO Max Recovery Attempts: Maps to FFmpeg's fifo muxer "max_recovery_attempts" option: how many consecutive output-recovery attempts FFmpeg itself makes before giving up and exiting the process. Allowed range: 0-50 (0 = FFmpeg's own unlimited default - not recommended, prefer a bounded value so a permanently-unreachable destination still exits promptly into the Restream Watchdog's own backoff/attempt-limit logic instead of retrying forever inside a single FFmpeg process). Default: 30, paired with the 2 second Recovery Wait Time default - this is a FLOOR of at least 60 seconds of internal recovery WAIT time before FFmpeg exits, not a reliable upper bound: each reconnect attempt's own TCP/TLS connect time adds on top with no cap, so a slow-to-respond (rather than cleanly refusing) destination can take substantially longer before the Restream Watchdog takes over. source
disableDVR false Disable DVR: Enable or disable the DVR Feature, you can control the DVR length in your nginx.conf on the parameter hls_playlist_length source
disableGifThumbs false Disable Gif Thumbs: This option will disable the Animated Gif render, it will save some hardware capacity from your encoder and may speedup your page source
disableLiveThumbs false Disable Live thumbnails: This option will disable the çive image extraction and will use the user static image, it will save some hardware capacity from your encoder and may speedup your page source
hideTopButton false Hide Top Button: This will hide the "Live Settings" button on the top menu bar source
hideUserGroups false — source
hideShare false — source
hideAdvancedStreamKeys Private setting; value omitted — source
hidePublicListedOption false — source
publicListedIsTheDefault true — source
hideIsRebroadcastOption true — source
saveLiveIsTheDefault true Save Live is the Default: https://github.com/WWBN/AVideo/wiki/Record-Live-Stream source
useAadaptiveMode false Adaptive mode: https://github.com/WWBN/AVideo/wiki/Adaptive-Bitrates-on-Livestream source
protectLive false Live Protection: With this your encryption key will be protected, and only your site player will be able to play your videos, download tools will not be able to download your video. if you want to share your live externally you can use the embed and you will still be protected. but if you want to use the m3u8 file you must disable this source
doNotShowLiveOnVideosList false Do not show live on videos list: We will not show the live thumbs on the main Gallery page source
doNotShowOnlineOfflineLabel false Hide the Online/Offline Badge on live streams source
doNotShowLiveOnCategoryList false Do not show live on site category list: We will not show the live thumbs on the main Gallery page source
doNotShowOfflineLiveOnCategoryList false Do not show offline lives on site category list: We will not show the live thumbs on the main Gallery page if it is offline source
limitLiveOnVideosList 12 Videos List Limit: This will limit the maximum of videos that you will see in the Videos page source
doNotShowGoLiveButton false Hide Top Live Settings Button: This will hide the "Go Live" button on the top menu bar source
doNotShowGoLiveButtonOnUploadMenu false Hide Live Settings Button on Upload Menu: This will hide the "Live Settings" button on the right upload menu bar source
useLiveServers false Use Live Servers: Check this if you will use External Live Servers https://github.com/WWBN/AVideo/wiki/Live-Plugin#livestream-server-balance source
disableMeetCamera false Disable Meet camera: This requires out Meet Server, with the Meet camera you can use your PC webcam directly in the webpage or mobile to make livestreams source
playLiveInFullScreen false Play Livestream in Full Screen source
playLiveInFullScreenOnIframe false Play Livestream in Full Screen on IFrame source
hls_path "/HLS/live" HLS Path URL: Used only when we stop a Live, we use this path to delete the files source
requestStatsTimout 4 Stats Timout: If a remote server (stats page) does not respond we stop waiting after this timeout source
cacheStatsTimout 60 Stats Cache Timeout: we will cache the result, this will save some resources source
requestStatsInterval 60 Stats Request Interval: how many seconds until request the stats again source
callbackSecret Private setting; value omitted RTMP Callback Secret: Required only when your NGINX server is external (not localhost/Docker). Set any strong random string here and add it to your nginx.conf callbacks: on_publish http://your-avideo.com/plugin/Live/on_publish.php?secret=YOUR_SECRET; on_publish_done http://your-avideo.com/plugin/Live/on_publish_done.php?secret=YOUR_SECRET; on_record_done http://your-avideo.com/plugin/Live/on_record_done.php?secret=YOUR_SECRET; — Leave empty if NGINX runs on localhost or Docker. source
streamDeniedMsg "You can not stream live videos" Denied Message: We will show this message when a user is not allowed so watch a livestream source
allowMultipleLivesPerUser true Allow Multiple Lives Per User: Your users will be able to make unlimited livestreams source
controllButtonsShowOnlyToAdmin_record_start false Show Record Start Button Only to Admin: Regular users will not able to see this button source
controllButtonsShowOnlyToAdmin_record_stop false Show Record Stop Button Only to Admin: Regular users will not able to see this button source
controllButtonsShowOnlyToAdmin_drop_publisher false Show Drop Publisher Button Only to Admin: Regular users will not able to see this button source
controllButtonsShowOnlyToAdmin_drop_publisher_reset_key Private setting; value omitted Show Drop Publisher and Reset Key Button Only to Admin: Regular users will not able to see this button source
controllButtonsShowOnlyToAdmin_save_dvr false Show Save DVR Button Only to Admin: Regular users will not able to see this button source
disable_live_schedule false Disable Live Schedule source
live_schedule_label 'Upcoming Events' Label for Schedule source
live_rebroadcasts_label 'Rebroadcasts' Label for Rebroadcasts source
reminderText Computed/structured; inspect source Scheduled reminder text: If you setup the live scheduler properly this text will be sent to your subscribers source
autoFishLiveEveryHour false Automatically end offline live sessions every hour: The server will verify if can access the m3u8 file, and finish the live if cannot source
showAudioVideoToggleButton true Show Audio/Video Toggle Button: Enable the button that allows users to switch between video and audio streams during live transmission source
enableSendViewers true Enable Send Viewers Feature: Allow streamers to redirect all viewers to a specified URL and stop the live stream source

Files and request surface

This inventory distinguishes implementation files from an API specification. Includes, templates, callbacks and CLI workers are not interchangeable HTTP endpoints. Request-field names below are direct source references, not a complete schema or permission declaration.

File Source role Direct request fields observed
Live.php plugin entry class catName, channelName, debug, key, limitOnceToOne, live_index, live_password, live_schedule, live_schedule_id, live_servers_id, modified, name, playlists_id_live, rowCount, secret, swfurl, tags_id, tcurl, token
Objects/LiveRestreamWatchdog.php class/helper implementation —
Objects/LiveTransmition.php class/helper implementation c, listed, live_index, live_schedule, live_transmitions_id, playlists_id_live, saveTransmition, u
Objects/LiveTransmitionHistory.php class/helper implementation playlists_id_live
Objects/LiveTransmitionHistoryLog.php class/helper implementation —
Objects/Live_restreams.php class/helper implementation —
Objects/Live_restreams_logs.php class/helper implementation —
Objects/Live_schedule.php class/helper implementation —
Objects/Live_servers.php class/helper implementation —
Objects/StreamAuthCache.php class/helper implementation —
actionButton.php PHP page/include/worker; inspect caller —
api/preauthorize.json.php JSON entry point; inspect caller and guard pass, password, user
asyncGetStats.php PHP page/include/worker; inspect caller —
audience.json.php JSON entry point; inspect caller and guard globalToken, key, live_servers_id
authorizeKeyAccess.php PHP page/include/worker; inspect caller debug, key
calendar.json.php JSON entry point; inspect caller and guard —
calendar.php PHP page/include/worker; inspect caller —
commandLineSendAllRecordedToEncoder.php PHP page/include/worker; inspect caller —
confirmLivePassword.php PHP page/include/worker; inspect caller c, key, live_password, live_schedule, u
control.json.php JSON entry point; inspect caller and guard command, key, live_servers_id, name
controlRecording.php PHP page/include/worker; inspect caller —
getImage.php PHP page/include/worker; inspect caller c, debug, format, live_index, live_schedule, live_servers_id, playlists_id_live, u
getUploadMenuButton.php PHP page/include/worker; inspect caller —
index.php PHP page/include/worker; inspect caller c, embed, embedv2, justRedirected, live_index, live_schedule, live_servers_id, noChat, resetKey, u, users_id
indexCol1.php PHP page/include/worker; inspect caller —
indexCol2.php PHP page/include/worker; inspect caller —
indexCol3.php PHP page/include/worker; inspect caller —
install/install.sql schema/migration SQL —
install/updateV10.0.sql schema/migration SQL —
install/updateV10.1.sql schema/migration SQL —
install/updateV10.2.sql schema/migration SQL —
install/updateV10.3.sql schema/migration SQL —
install/updateV10.4.sql schema/migration SQL —
install/updateV10.5.sql schema/migration SQL —
install/updateV11.1.sql schema/migration SQL —
install/updateV11.2.sql schema/migration SQL —
install/updateV12.0.sql schema/migration SQL —
install/updateV13.0.sql schema/migration SQL —
install/updateV14.0.sql schema/migration SQL —
install/updateV15.1.sql schema/migration SQL —
install/updateV2.0.sql schema/migration SQL —
install/updateV3.0.sql schema/migration SQL —
install/updateV4.0.sql schema/migration SQL —
install/updateV5.0.sql schema/migration SQL —
install/updateV5.1.sql schema/migration SQL —
install/updateV5.2.sql schema/migration SQL —
install/updateV6.0.sql schema/migration SQL —
install/updateV7.0.sql schema/migration SQL —
install/updateV7.2.sql schema/migration SQL —
install/updateV8.0.sql schema/migration SQL —
install/updateV9.0.sql schema/migration SQL —
isLiveRunning.json.php JSON entry point; inspect caller and guard name
keyInfo.php PHP page/include/worker; inspect caller json, key
latestOrLive.php PHP page/include/worker; inspect caller catName, channelName, embed, isClosed, muted, noChat, rowCount, sort, videos_id
m3u8.php PHP page/include/worker; inspect caller uuid
myLiveControls.php PHP page/include/worker; inspect caller —
myLiveControls.save.json.php JSON entry point; inspect caller and guard autoRedirect, customMessage, customUrl
on_connect.php PHP page/include/worker; inspect caller —
on_done.php PHP page/include/worker; inspect caller —
on_play.php PHP page/include/worker; inspect caller —
on_play_done.php PHP page/include/worker; inspect caller —
on_publish.php PHP page/include/worker; inspect caller addr, app, domain, e, key, name, p, s, swfurl, tcurl
on_publish_done.php PHP page/include/worker; inspect caller e, key, name, p, swfurl, tcurl
on_publish_socket_notification.php PHP page/include/worker; inspect caller live_servers_id
on_record_done.php PHP page/include/worker; inspect caller —
on_update.php PHP page/include/worker; inspect caller —
remindMe.json.php JSON entry point; inspect caller and guard deleteIfExists, live_schedule_id, minutesEarlier
remindMe.php PHP page/include/worker; inspect caller live_schedule_id
removePoster.php PHP page/include/worker; inspect caller live_servers_id
report.php PHP page/include/worker; inspect caller —
restreamInBackground.php PHP page/include/worker; inspect caller —
saveLive.php PHP page/include/worker; inspect caller categories_id, description, isRebroadcast, key, password, title, userGroups, users_id
sendViewers.json.php JSON entry point; inspect caller and guard customMessage, live_key, live_servers_id, viewerUrl
socketMessageLiveOwner.json.php JSON entry point; inspect caller and guard error, key, msg
standAloneFiles/control.json.php JSON entry point; inspect caller and guard app, command, name, token
standAloneFiles/ffmpegCapabilities.php PHP page/include/worker; inspect caller —
standAloneFiles/ffmpegCapabilitiesTool.php PHP page/include/worker; inspect caller —
standAloneFiles/functions.php PHP page/include/worker; inspect caller —
standAloneFiles/getRecordedFile.php PHP page/include/worker; inspect caller file, saveDVR, secret
standAloneFiles/kill_ffmpeg_restream.php PHP page/include/worker; inspect caller —
standAloneFiles/restreamLogging.php PHP page/include/worker; inspect caller —
standAloneFiles/restreamProfiles.php PHP page/include/worker; inspect caller —
standAloneFiles/restreamer.json.php JSON entry point; inspect caller and guard destinations, logFile, m3u8, tokenForAction, user_id
standAloneFiles/saveDVR.json.php JSON entry point; inspect caller and guard saveDVR
stats.json.php JSON entry point; inspect caller and guard name
stopLive.php PHP page/include/worker; inspect caller key
tabs/recommended_stream_settings.php PHP page/include/worker; inspect caller —
tabs/tabAdmin.php PHP page/include/worker; inspect caller —
tabs/tabShare.php PHP page/include/worker; inspect caller —
tabs/tabStreamKey.php PHP page/include/worker; inspect caller —
tabs/tabStreamSettings.php PHP page/include/worker; inspect caller live_index, live_schedule_id, live_servers_id
tabs/tabStreamSettings.software.php PHP page/include/worker; inspect caller —
tabs/tabStreamSettings.webcam.php PHP page/include/worker; inspect caller —
test.php PHP page/include/worker; inspect caller statsURL
tools/findkey.php PHP page/include/worker; inspect caller —
tools/reviewKeys.php PHP page/include/worker; inspect caller —
tools/testRestreams.php PHP page/include/worker; inspect caller —
uploadPoster.json.php JSON entry point; inspect caller and guard image, liveImgCloseTimeInSeconds, liveImgTimeInSeconds, live_schedule_id, live_servers_id, posterType, ppv_schedule_id
uploadPoster.php PHP page/include/worker; inspect caller file_data, live_schedule_id, live_servers_id
verifyToken.json.php JSON entry point; inspect caller and guard token
view/Live_restreams/activeLives.php PHP page/include/worker; inspect caller —
view/Live_restreams/add.json.php JSON entry point; inspect caller and guard id, name, parameters, status, stream_key, stream_url, users_id
view/Live_restreams/delete.json.php JSON entry point; inspect caller and guard id
view/Live_restreams/getAction.json.php JSON entry point; inspect caller and guard action, live_restreams_id, live_restreams_logs_id, live_transmitions_history_id
view/Live_restreams/getLiveKey.json.php JSON entry point; inspect caller and guard live_restreams_id, live_schedule_id, ppv_schedule_id, token
view/Live_restreams/getLiveKey.php PHP page/include/worker; inspect caller —
view/Live_restreams/getLogContent.json.php JSON entry point; inspect caller and guard live_restreams_id, live_restreams_logs_id, live_transmitions_history_id
view/Live_restreams/index.php PHP page/include/worker; inspect caller —
view/Live_restreams/index_body.php PHP page/include/worker; inspect caller —
view/Live_restreams/index_head.php PHP page/include/worker; inspect caller —
view/Live_restreams/list.json.php JSON entry point; inspect caller and guard users_id
view/Live_restreams/livePanel.php PHP page/include/worker; inspect caller —
view/Live_restreams/livePanelForm.php PHP page/include/worker; inspect caller —
view/Live_restreams/logHistory.json.php JSON entry point; inspect caller and guard live_restreams_id
view/Live_restreams/logViewer.php PHP page/include/worker; inspect caller live_restreams_id, live_restreams_logs_id, live_transmitions_history_id
view/Live_restreams/resendRestreamer.json.php JSON entry point; inspect caller and guard live_restreams_id, live_transmitions_history_id
view/Live_restreams/testRestreamer.json.php JSON entry point; inspect caller and guard —
view/Live_restreams/verifyTokenForAction.json.php JSON entry point; inspect caller and guard token
view/Live_restreams_logs/add.json.php JSON entry point; inspect caller and guard id, live_restreams_id, logFile, m3u8, responseToken, restreamerURL
view/Live_restreams_logs/delete.json.php JSON entry point; inspect caller and guard id
view/Live_restreams_logs/index.php PHP page/include/worker; inspect caller —
view/Live_restreams_logs/index_body.php PHP page/include/worker; inspect caller —
view/Live_restreams_logs/index_head.php PHP page/include/worker; inspect caller —
view/Live_restreams_logs/list.json.php JSON entry point; inspect caller and guard draw
view/Live_schedule/add.json.php JSON entry point; inspect caller and guard description, id, live_servers_id, scheduled_password, scheduled_time, status, title, userGroupsSchedule, users_id_company
view/Live_schedule/delete.json.php JSON entry point; inspect caller and guard id
view/Live_schedule/index.php PHP page/include/worker; inspect caller —
view/Live_schedule/index_body.php PHP page/include/worker; inspect caller —
view/Live_schedule/index_head.php PHP page/include/worker; inspect caller —
view/Live_schedule/list.json.php JSON entry point; inspect caller and guard draw, sort
view/Live_schedule/panel.php PHP page/include/worker; inspect caller live_servers_id
view/Live_schedule/panelForm.php PHP page/include/worker; inspect caller —
view/Live_schedule/panelIndex.php PHP page/include/worker; inspect caller —
view/Live_schedule/uploadPoster.php PHP page/include/worker; inspect caller live_schedule_id, live_servers_id, ppv_schedule_id
view/Live_servers/add.json.php JSON entry point; inspect caller and guard controlURL, disableDVR, disableGifThumbs, getRemoteFile, id, name, playerServer, protectLive, restreamerURL, rtmp_server, stats_url, status, url, useAadaptiveMode
view/Live_servers/delete.json.php JSON entry point; inspect caller and guard id
view/Live_servers/index.php PHP page/include/worker; inspect caller —
view/Live_servers/index_body.php PHP page/include/worker; inspect caller —
view/Live_servers/index_head.php PHP page/include/worker; inspect caller —
view/Live_servers/list.json.php JSON entry point; inspect caller and guard —
view/audience.php PHP page/include/worker; inspect caller —
view/audioToggleButton.js browser/worker JavaScript; verify loader —
view/deleteHistory.json.php JSON entry point; inspect caller and guard —
view/editor.php PHP page/include/worker; inspect caller —
view/finishAll.json.php JSON entry point; inspect caller and guard all
view/footer.php PHP page/include/worker; inspect caller —
view/getActiveLives.json.php JSON entry point; inspect caller and guard —
view/getRestream.json.php JSON entry point; inspect caller and guard live_transmitions_history_id, restreams_id
view/http-streaming/videojs-http-streaming.cjs.js browser/worker JavaScript; verify loader —
view/http-streaming/videojs-http-streaming.es.js browser/worker JavaScript; verify loader —
view/http-streaming/videojs-http-streaming.js browser/worker JavaScript; verify loader —
view/isOnlineLabel.js browser/worker JavaScript; verify loader —
view/live.js browser/worker JavaScript; verify loader —
view/liveVideo.php PHP page/include/worker; inspect caller live_schedule, live_servers_id, ppv_schedule_id
view/loopBGHLS/index.m3u8.php PHP page/include/worker; inspect caller res
view/loopBGHLS/index.ts.php PHP page/include/worker; inspect caller res, seq
view/loopBGHLS/res240/index.m3u8.php PHP page/include/worker; inspect caller —
view/loopBGHLS/res360/index.m3u8.php PHP page/include/worker; inspect caller —
view/loopBGHLS/res480/index.m3u8.php PHP page/include/worker; inspect caller —
view/loopBGHLS/res720/index.m3u8.php PHP page/include/worker; inspect caller —
view/menuRight.php PHP page/include/worker; inspect caller —
view/modeYoutubeLive.php PHP page/include/worker; inspect caller c, embed, live_index, live_schedule, playlists_id_live, u
view/onlineLabel.php PHP page/include/worker; inspect caller —
view/panel.php PHP page/include/worker; inspect caller —
view/restreamsActive.json.php JSON entry point; inspect caller and guard —
view/socket.js browser/worker JavaScript; verify loader —
view/swfobject.js browser/worker JavaScript; verify loader —
view/videoEmbeded.php PHP page/include/worker; inspect caller c, live_index, live_schedule, live_servers_id, ppv_schedule_id, u
view/videoEmbededV2.php PHP page/include/worker; inspect caller c, live_index, live_schedule, live_servers_id, ppv_schedule_id, u, webSiteRootURL

Data and migrations

Tables named in available CREATE TABLE statements: live_restreams, live_restreams_logs, live_schedule, live_servers, live_transmition_history_log, live_transmitions, live_transmitions_has_users_groups, live_transmitions_history. Apply installation/update behavior through the owning plugin; this reference is not a script for running historical migrations manually.

Main-file named symbols

Visibility and implementation semantics must be checked in source. Nonempty string defaults are represented as . This is a symbol reference, not a stable public API promise.

Function or method Source
getPluginDependencies() 28
getTags() 47
getDescription() 57
getName() 70
getHTMLMenuRight() 75
getUUID() 81
getPluginVersion() 86
getLivePanel() 91
getLiveApplicationArray() 98
getLiveApplicationModelArray($array) 264
getDataObjectAdvanced() 425
getDataObjectDeprecated() 488
getDataObjectExperimental() 508
getEmptyDataObject() 516
getHeadCode() 718
getFooterCode() 782
getButtonTitle() 801
getKey() 807
getDestinationApplicationName() 813
getDestinationHost() 821
getDestinationPort() 828
getPlayerDestinationHost() 838
getPlayerDestinationPort() 845
getServer($live_servers_id = -1) 855
getAPPName() 873
getControlOrPublic($key, $live_servers_id = 0) 891
getDropURL($key, $live_servers_id = 0) 916
getIsRecording($key, $live_servers_id = 0) 932
getStartRecordURL($key, $live_servers_id = 0) 946
getStopRecordURL($key, $live_servers_id = 0) 965
controlRecording($key, $live_servers_id, $start = true, $try = 0) 979
controlRecordingAsync($key, $live_servers_id, $start = true) 1025
userCanRecordLive($users_id) 1037
getButton($command, $key, $live_servers_id = 0, $iconsOnly = false, $label = "'<string>''<string>'") 1045
getRecordControlls($key, $live_servers_id = 0, $iconsOnly = false) 1189
getAllControlls($key, $live_servers_id = 0, $iconsOnly = false, $btnClass = '') 1203
getRestreamer($live_servers_id = -1) 1224
getControl($live_servers_id = -1) 1241
getRTMPLink($users_id, $forceIndex = false, $doNotCheckUser = false) 1262
getRTMPLinkFromKey($key, $forceIndex = false) 1268
getRTMPLinkWithOutKey($users_id, $short = true) 1275
getRTMPLinkWithOutKeyFromKey($key) 1282
getKeyFromUser($users_id, $doNotCheckUser = false) 1289
getDynamicKey($key) 1307
getPlayerServer($ignoreCDN = false) 1316
getUseAadaptiveMode() 1339
getRemoteFile() 1352
getRemoteFileFromLiveServersID($live_servers_id) 1357
getRemoteFileFromRTMPHost($rtmpHostURI) 1371
assertRtmpCallbackAllowed() 1388
getLiveServersIdRequest() 1422
getLiveScheduleIdRequest() 1439
getM3U8File($uuid, $doNotProtect = false, $ignoreCDN = false) 1450
getDisableGifThumbs() 1465
getStatsURL($live_servers_id = 0) 1471
getStatsObject($live_servers_id = 0, $force_recreate = false, $tries = 0) 1484
createCacheStatsObject($live_servers_id = 0, $requestStatsTimout = 15) 1547
isStatsAccessible($live_servers_id) 1600
get_data($url, $timeout) 1612
logStatsXMLFailure($url, $live_servers_id, $timeout, $data, $statsResponse) 1662
sanitizeStatsLogPreview($data) 1687
getChartTabs() 1693
getChartContent() 1701
saveHistoryLog($key) 1707
dataSetup() 1717
stopLive($users_id) 1726
stopLiveFromkey($key) 1740
startRecording($users_id) 1786
getApplicationName() 1803
stopRecording($users_id) 1816
getLinkToLiveFromUsers_id($users_id, $live_schedule_id = 0) 1833
getLinkToLiveFromUsers_idAndLiveServer($users_id, $live_servers_id, $live_index = null, $live_schedule_id = 0) 1839
getLinkToLiveFromChannelNameAndLiveServer($channelName, $live_servers_id, $live_index = null, $live_schedule_id = 0) 1852
getAvailableLiveServersId() 1889
getLastServersIdFromUser($users_id) 1899
getLastsLiveHistoriesFromUser($users_id, $count = 10) 1909
getLinkToLiveFromUsers_idWithLastServersId($users_id) 1914
getCurrentLiveServersId() 1920
getVideosManagerListButtonTitle() 1930
getPluginMenu() 1940
checkAllFromStats($force_recreate = false) 1963
finishAllFromStats() 1969
unfinishAllFromStats($force_recreate = false) 2008
getStatsApplications($force_recreate = false) 2039
getStats($force_recreate = false) 2063
isAdaptive($key) 2161
getAllServers() 2173
getAvailableLiveServer() 2183
canSeeLiveFromLiveKey($key) 2236
isPasswordProtected($key) 2245
isRebroadcast($key) 2272
canManageLiveFromLiveKey($key, $users_id) 2298
isAPrivateLiveFromLiveKey($key) 2315
getTitleFromUsers_Id($users_id) 2324
getLiveTransmitionObjectFromUsers_id($users_id) 2336
getLiveTransmitionObjectFromKey($key) 2347
_getStats($live_servers_id = 0, $force_recreate = false) 2393
getDescriptionFromKey($key, $description = '') 2631
getTitleFromKey($key, $title = '') 2660
isApplicationListed($key, $listItIfIsAdminOrOwner = true) 2716
isPrivate($key) 2745
byPass() 2756
getLiveParametersFromKey($key) 2765
getLiveIndexFromKey($key) 2792
cleanUpKey($key) 2798
isAdaptiveTransmition($key) 2812
isPlayListTransmition($key) 2825
isSubTransmition($key) 2836
getImage($users_id, $live_servers_id, $playlists_id_live = 0, $live_index = '') 2847
getLatestKeyFromUser($users_id) 2859
getLatest($active = false, $users_id = 0, $categories_id = 0) 2871
isLive($users_id, $live_servers_id = 0, $live_index = '', $force_recreate = false) 2880
isKeyLiveInStatsV2($key, $live_servers_id = 0, $live_index = '', $force_recreate = false, $doNotCheckDatabase = true) 2908
isKeyLiveInStats($key, $live_servers_id = 0, $live_index = '', $force_recreate = false, $doNotCheckDatabase = true) 2976
isLiveAndIsReadyFromKey($key, $live_servers_id = 0, $live_index = '', $force_recreate = false) 3087
getOnlineLivesFromUser($users_id) 3155
getOnlineLivesFromKey($key) 3161
keyIsFromPlaylist($key) 3175
getLiveKey($users_id) 3186
getLiveKeyFromUser($users_id, $live_index = ''<string>'') 3193
getLiveKeyFromRequest($key, $live_index = ''<string>'') 3199
getImageGif($users_id, $live_servers_id = 0, $playlists_id_live = 0, $live_index = '') 3218
getPosterImage($users_id, $live_servers_id, $ppv_schedule_id, $live_schedule_id, $posterType) 3239
getRegularPosterImage($users_id, $live_servers_id, $live_schedule_id, $ppv_schedule_id) 3293
getPrerollPosterImage($users_id, $live_servers_id, $live_schedule_id, $ppv_schedule_id) 3298
getPrerollPosterImageTimes($users_id, $live_servers_id, $live_schedule_id, $ppv_schedule_id) 3305
getPostrollPosterImage($users_id, $live_servers_id, $live_schedule_id, $ppv_schedule_id) 3322
getPostrollPosterImageTimes($users_id, $live_servers_id, $live_schedule_id, $ppv_schedule_id) 3327
posterExists($users_id, $live_servers_id, $live_schedule_id, $ppv_schedule_id, $posterType) 3343
prerollPosterExists($users_id, $live_servers_id, $live_schedule_id, $ppv_schedule_id) 3372
postrollPosterExists($users_id, $live_servers_id, $live_schedule_id, $ppv_schedule_id) 3377
getPosterImageOrFalse($users_id, $live_servers_id) 3382
getLivePosterImage($users_id, $live_servers_id = 0, $playlists_id_live = 0, $live_index = ''<string>'jpg', $live_schedule_id = 0) 3392
getLivePosterImageRelativePath($users_id, $live_servers_id, $ppv_schedule_id, $playlists_id_live = 0, $live_index = ''<string>'jpg', $live_schedule_id = 0, $returnURL = false) 3399
isLiveThumbsDisabled() 3433
getPosterThumbsImage($users_id, $live_servers_id, $cominsoon = false) 3442
getPoster($users_id, $live_servers_id, $key) 3465
getOfflineImage($includeURL = true) 3506
getOnAirImage($includeURL = true) 3516
getComingSoonImage($includeURL = true) 3526
fixOldPosterImage($newDir, $newFile, $oldFile) 3536
_getPosterImage($users_id, $live_servers_id, $ppv_schedule_id, $live_schedule_id = 0, $posterType = 0) 3562
_getPosterThumbsImage($users_id, $live_servers_id, $posterType = 0) 3585
getRestreamReconnectStateFile($key, $live_servers_id) 3601
getRestreamReconnectState($key, $live_servers_id) 3607
saveRestreamReconnectState($key, $live_servers_id, $state) 3623
registerRestreamReconnectEvent($key, $live_servers_id, $liveTransmitionHistory_id, $isReconnection) 3629
markAutoRestreamOnReconnection($key, $live_servers_id) 3665
canAutoRestreamOnReconnection($key, $live_servers_id, $cooldownSeconds = 30) 3672
_on_publish($liveTransmitionHistory_id, $isReconnection) 3685
deleteStatsCache($clearFirstPage = false) 3718
getReverseRestreamObject($m3u8, $users_id, $live_servers_id = -1, $forceIndex = false) 3743
getRestreamObject($liveTransmitionHistory_id, $live_restreams_id = 0) 3757
_getRestreamObject($liveTransmitionHistory_id, $restreamRowItems) 3807
gettRestreamRowItem($restreamsDestination, $id, $live_url) 3846
reverseRestream($m3u8, $users_id, $live_servers_id = -1, $forceIndex = false) 3853
restream($liveTransmitionHistory_id, $live_restreams_id = 0, $test = false, $options = []) 3882
restreamInBackground($liveTransmitionHistory_id) 3955
restreamToDestination($liveTransmitionHistory_id, $restreamsDestination) 3970
getRestreamLogSummary($obj) 3985
sendRestream($obj, $doNotNotifyStreamer = false) 4011
canScheduleLive() 4102
canStreamWithMeet() 4116
getUploadMenuButton() 4140
getAllVideos($status = "", $showOnlyLoggedUserVideos = false, $activeUsersOnly = true) 4154
finishLive($key) 4271
updateVideosUserGroup($videos_id, $key) 4276
notifySocketStats($callBack = '<string>', $array = []) 4288
getImageType($content) 4308
isLiveImage($content) 4339
isDefaultImage($content) 4344
isSendViewersEnabled() 4350
iskeyOnline($key) 4359
getValidNotOnlineLiveIndex($key, $live_index) 4373
getLatestValidNotOnlineLiveIndex($key) 4393
getLivesOnlineFromKey($key) 4400
getFirstLiveOnlineFromKey($key) 4421
getUserHash($users_id) 4430
decryptHash($hash) 4435
getServerURL($key, $users_id, $short = true) 4442
passwordIsGood($key) 4469
checkIfPasswordIsGood($key) 4497
getMediaSession($key, $live_servers_id, $live_schedule_id, $ppv_schedule_id) 4508
getMediaSessionPosters($users_id, $live_servers_id, $live_schedule_id, $ppv_schedule_id) 4529
getInfo($key, $live_servers_id = null, $live_index = ''<string>'', $doNotCheckDatabase = true) 4542
setLiveScheduleReminder($live_schedule_id, $minutesEarlier = 0, $deleteIfExists = false) 4651
getLiveScheduleReminders($live_schedule_id) 4732
getLiveScheduleReminderBaseNameType($live_schedule_id, $minutesEarlier = '') 4738
getScheduleReminderOptions($live_schedule_id) 4748
getWatchActionButton($videos_id) 4782
getProcess($key) 4788
killIfIsRunning($key) 4806
getPermissionsOptions() 4824
getRestreamsIdFromToken($token) 4833
canRestream() 4845
_getUserNotificationButton() 4875
getUserNotificationButton() 4887
executeEveryMinute() 4892
executeEveryHour() 4922
getLiveControls($live_key, $live_servers_id = 0) 4931
on_publish_done($live_transmitions_history_id, $users_id, $key, $live_servers_id) 4937
showAudioVideoToggleButton() 4963
__construct($key, $live_servers_id = 0, $live_index = 0, $playlists_id_live = 0, $live_schedule = 0) 4990
getKey() 5027
getKeyWithIndex($forceIndexIfEnabled = false, $allowOnlineIndex = false) 5032
getIndex($allowOnlineIndex = false) 5044
getLive_servers_id() 5061
getLive_index() 5066
getPlaylists_id_live() 5071
getURL() 5076
getURLEmbed() 5106
getM3U8($doNotProtect = false, $allowOnlineIndex = false, $ignoreCDN = false) 5112
getOnlineM3U8($users_id, $doNotProtect = false) 5164
getRTMPLink($forceIndex = false) 5183
getRTMPLinkWithOutKey($short = true) 5196

Supporting PHP declarations

These symbols are grouped by source file; inspect the class declaration and visibility before calling them.

Objects/LiveRestreamWatchdog.php

Declared classes: LiveRestreamWatchdog.

Named symbol Source
run($objLive = null) 60
checkRestream($live, $restream, $objLive) 120
isProcessConsideredRunning($localProcess, $status) 179
handleHealthy($live_restreams_id, $liveTransmitionHistory_id, $state, $localProcess, $objLive, $label) 184
computeHealthySinceOnObservation($previousHealthySince, $previousKnownPid, $currentPid, $currentPidStartedAt, $now) 252
handleNotRunning($live, $restream, $status, $state, $objLive, $label) 272
mergeFailureObservationIntoState(array $freshState, $now, $failureReason) 336
attemptRestart($live, $restream, $objLive, $label, $failureReason = '') 345
fetchLogStatus($liveTransmitionHistory_id, $live_restreams_id, $live_restreams_logs_id, $action) 500
getLocalProcess($live_restreams_id, $liveTransmitionHistory_id) 533
getProcessStartUnixTime($pid) 563
parseProcStatStartTicks($statContent) 589
computeProcessStartUnixTimeFromTicks($nowUnix, $uptimeSeconds, $startTicks, $ticksPerSecond = 100) 614
evaluateRecheckedProcessState($recheckProcess, $recheckStatus) 630
computeRestreamPhase(array $state, $processRunning, $maxAttemptsReached) 650
classifyFailure($contentStatus) 664
getStateFile($live_restreams_id, $liveTransmitionHistory_id) 681
getState($live_restreams_id, $liveTransmitionHistory_id) 687
emptyState() 701
saveState($live_restreams_id, $liveTransmitionHistory_id, $state) 716
clearState($live_restreams_id, $liveTransmitionHistory_id, $reasonForLog = '') 722
pruneAttempts($attempts, $windowSeconds, $now) 733
acquireLock($live_restreams_id, $liveTransmitionHistory_id) 754
releaseLock($handle) 770
logDiagnosticSnapshot($live, $restream, $contentStatus, $state, $label, $objLive = null) 782
getSourceHost($live) 823
getMemoryInfo() 841
getFfmpegProcessCount() 860
getLastLogLines($contentStatus, $numberOfLines) 870
getConfigInt($objLive, $field, $default) 883
getConfigString($objLive, $field, $default) 891
getBackoffSequence($objLive) 905
maskSecret($value) 918

Objects/LiveTransmition.php

Declared classes: LiveTransmition.

Named symbol Source
getSearchFieldsNames() 22
getTableName() 26
getId() 30
getTitle() 34
getPublic() 38
getSaveTransmition() 42
getUsers_id() 46
getCategories_id() 50
getKey() 58
getDescription() 62
setId($id) 66
setTitle($title) 70
setPublic($public) 76
setSaveTransmitionAutomatic() 80
setPublicAutomatic() 89
setSaveTransmition($saveTransmition) 98
setUsers_id($users_id) 102
setCategories_id($categories_id) 106
setKey($key) 110
setDescription($description) 114
loadByUser($user_id) 120
loadByKey($uuid) 132
getFromDbByUser($user_id, $refreshCache = false, $allowOnlineIndex = false) 144
createTransmitionIfNeed($user_id) 176
resetTransmitionKey($user_id) 202
getFromRequest() 215
getFromDbByUserName($userName) 233
getFromDbByChannelName($channelName, $allowOnlineIndex = false) 253
getFromDbBySchedule($live_schedule_id) 271
keyExists($key, $checkSchedule = true) 290
save() 352
deleteGroupsTrasmition() 393
insertGroup($users_groups_id) 402
isAPrivateLive() 408
getGroups() 412
userCanSeeTransmition() 430
getFromKey($key, $checkSchedule = true) 468
keyNameFix($key) 472
getShowOnTV() 485
setShowOnTV($showOnTV) 489
getPassword() 493
setPassword($password): void 497
getIsRebroadcast() 501
setIsRebroadcast($isRebroadcast): void 505
canSaveTransmition($users_id) 509
getUsers_idOrCompanyFromKey($key) 514

Objects/LiveTransmitionHistory.php

Declared classes: LiveTransmitionHistory.

Named symbol Source
getSearchFieldsNames() 27
getTableName() 32
getUsers_id_company(): int 37
setUsers_id_company($users_id_company): void 42
getId() 47
getTitle() 52
getDescription() 57
getKey() 64
getCreated() 69
getModified() 74
getUsers_id() 83
setId($id) 88
getFinished() 93
getDomain() 98
getJson() 103
setDomain($domain) 108
setJson($json) 113
setTitle($title) 118
setDescription($description) 126
setKey($key) 132
setCreated($created) 137
setModified($modified) 142
setUsers_id($users_id) 147
getLive_servers_id() 152
getModifiedTime() 157
getLive_index() 162
getLive_cleanKey() 171
getMax_viewers_sametime() 180
getTotal_viewers() 185
setMax_viewers_sametime($max_viewers_sametime): void 190
setTotal_viewers($total_viewers): void 195
getApplicationObject($liveTransmitionHistory_id) 204
isPrivate($liveTransmitionHistory_id) 265
isRebroadcast($liveTransmitionHistory_id) 285
isPasswordProtected($liveTransmitionHistory_id) 298
getStatsAndAddApplication($liveTransmitionHistory_id) 308
getCleankeyName($key) 358
getStatsAndRemoveApplication($liveTransmitionHistory_id) 370
setLive_servers_id($live_servers_id) 402
recordAudienceSample($historyId, $secondsInactive = 60) 408
getAllFromUser($users_id = 0, $onlyWithViewers = false, $onlyActive = false, $limit = 0, $reportOrder = '') 427
getAllActiveFromUser($users_id = 0) 486
isLive($key, $live_servers_id = 0) 491
getLatest($key = '', $live_servers_id = null, $active = false, $users_id = 0, $categories_id = 0) 512
finish($key) 576
finishFromTransmitionHistoryId($live_transmitions_history_id) 586
updateModifiedTime($live_transmitions_history_id) 610
unfinishFromTransmitionHistoryId($live_transmitions_history_id) 627
finishALL($olderThan = '') 646
deleteALL() 663
finishALLOffline() 676
getLatestFromUser($users_id) 705
getLatestFromKey($key, $strict = false) 711
getLatestIndexFromKey($key) 749
getLastsLiveHistoriesFromUser($users_id, $count = 10, $finishedOnly = false) 755
getActiveLives($live_servers_id = '', $checkLive = true, $users_id = 0, $categories_id = 0) 783
getActiveLiveFromUser($users_id, $live_servers_id = ''<string>'', $count = 1) 855
save() 929
deleteAllFromLiveServer($live_servers_id) 993
delete() 1015
getLinkToLive($live_transmitions_history_id) 1023
getUsers_idOrCompany($live_transmitions_history_id) 1036

Objects/LiveTransmitionHistoryLog.php

Declared classes: LiveTransmitionHistoryLog.

Named symbol Source
getSearchFieldsNames() 16
getTableName() 21
getLive_transmitions_history_id() 26
getUsers_id() 31
getSession_id() 36
getUser_agent() 41
setUser_agent($user_agent) 46
getIp() 51
setIp($ip) 56
setLive_transmitions_history_id($live_transmitions_history_id) 61
setUsers_id($users_id) 66
setSession_id($session_id) 71
addLog($live_transmitions_history_id) 76
getFromHistoryAndSession($live_transmitions_history_id, $session_id) 88
getTotalFromHistoryAndIP($live_transmitions_history_id, $ip) 104
getAllFromHistory($live_transmitions_history_id) 123
save() 140
deleteAllFromHistory($live_transmitions_history_id) 159

Objects/Live_restreams.php

Declared classes: Live_restreams.

Named symbol Source
getSearchFieldsNames() 15
getTableName() 19
setId($id) 23
setName($name) 27
setStream_url($stream_url) 32
setStream_key($stream_key) 36
setStatus($status) 40
setParameters($parameters) 44
setUsers_id($users_id) 48
getId() 52
getName() 56
getStream_url() 60
getStream_key() 64
getStatus() 68
getParameters() 72
getUsers_id() 76
getAllFromUser($users_id, $status = '<string>') 80
getAllFromLiveTransmitionHistory($live_transmitions_history_id, $status = '<string>') 125
getProviderName($parameters) 151
checkIfTokenIsExpired($parameters) 167
save() 199

Objects/Live_restreams_logs.php

Declared classes: Live_restreams_logs.

Named symbol Source
getSearchFieldsNames() 10
getTableName() 15
setId($id) 20
setRestreamer($restreamer) 25
setM3u8($m3u8) 34
setLogFile($logFile) 42
setJson($json) 48
setLive_transmitions_history_id($live_transmitions_history_id) 53
setLive_restreams_id($live_restreams_id) 58
getId() 64
getRestreamer() 72
getM3u8() 77
getLogFile() 82
getJson() 87
getLive_transmitions_history_id() 92
getLive_restreams_id() 97
getLatest($live_transmitions_history_id, $live_restreams_id) 103
getHistoryByRestream($live_restreams_id, $users_id = 0) 129
getURL($live_transmitions_history_id, $live_restreams_id, $live_restreams_logs_id, $action = '<string>') 160
getURLFromTransmitionAndRestream($live_transmitions_history_id, $live_restreams_id, $action = '<string>') 219
getToken($action, $live_transmitions_history_id, $live_restreams_id, $live_restreams_logs_id, $users_id = 0) 231
verifyToken($token, $secondsValid = 3600) 245

Objects/Live_schedule.php

Declared classes: Live_schedule.

Named symbol Source
getSearchFieldsNames() 24
getTableName() 29
getUsers_id_company(): int 34
setUsers_id_company($users_id_company): void 38
getJson() 42
setJson($json) 46
getUserGroups() 54
setUserGroups($usergroups) 73
getAllUsers() 90
getAllLive_servers() 109
getPosterPaths($live_schedule_id, $ppv_schedule_id, $posterType=0) 128
getPosterURL($live_schedule_id, $ppv_schedule_id, $posterType=0) 162
isLive($live_schedule_id) 171
getAll($users_id=0, $activeHoursAgo=false) 181
getAllActiveLimit($users_id=0,$limit = 100) 227
setId($id) 263
setTitle($title) 268
setDescription($description) 274
setKey($key) 279
setUsers_id($users_id) 284
setLive_servers_id($live_servers_id) 288
setScheduled_time($scheduled_time) 293
setScheduledPHPtime($scheduled_time) 298
_setTimezone($timezone) 305
setStatus($status) 310
setPoster($poster) 315
setPublic($public) 320
setSaveTransmition($saveTransmition) 325
setShowOnTV($showOnTV) 330
getId() 335
getTitle() 340
getDinamicTitle() 345
getDescription() 351
getKey() 356
getUsers_id() 361
getLive_servers_id() 366
getScheduled_time() 374
getTimezone() 379
getStatus() 384
getPoster() 389
getPublic() 394
getSaveTransmition() 399
getShowOnTV() 404
save() 409
delete() 460
clearScheduleCache() 473
keyExists($key) 482
getScheduled_password() 512
getPassword() 516
setScheduled_password( #[\SensitiveParameter] $scheduled_password ): void 520
getUsers_idOrCompany($live_schedule_id) 527
userCanSeeTransmition() 536
isAPrivateLive() 579
getIsRebroadcast() 585

Objects/Live_servers.php

Declared classes: Live_servers.

Named symbol Source
getSearchFieldsNames() 22
getTableName() 27
setId($id) 32
setName($name) 37
setUrl($url) 43
setStatus($status) 48
setRtmp_server($rtmp_server) 53
setPlayerServer($playerServer) 58
setStats_url($stats_url) 63
setDisableDVR($disableDVR) 68
setDisableGifThumbs($disableGifThumbs) 73
setUseAadaptiveMode($useAadaptiveMode) 78
setProtectLive($protectLive) 83
setGetRemoteFile($getRemoteFile) 88
getId() 93
getName() 98
getUrl() 103
getStatus() 108
getRtmp_server() 113
getPlayerServer() 120
getStats_url() 125
getDisableDVR() 130
getDisableGifThumbs() 135
getUseAadaptiveMode() 140
getProtectLive() 145
getGetRemoteFile() 153
getRestreamerURL() 158
setRestreamerURL($restreamerURL) 163
getControlURL() 168
setControlURL($controlURL) 173
getStatsFromId($live_servers_id, $force_recreate = false) 178
getAllActive() 200
getServerFromRTMPHost($rtmpHostURI) 225
getServerIdFromRTMPHost($rtmpHostURI) 244
save() 255
delete() 266

Objects/StreamAuthCache.php

Declared classes: StreamAuthCache.

Named symbol Source
initCacheDir() 17
getCacheKey($ip, $streamKey) 32
getCacheFile($ip, $streamKey) 42
create($streamKey, $users_id) 56
get($streamKey, $ip = null) 86
delete($streamKey, $ip = null) 130
cleanup() 151
getTTL() 181
processPreauthorization($username, $password) 194

authorizeKeyAccess.php

Named symbol Source
_getRemoteAddrFromServerArray($server) 11
_isPrivateOrLoopbackIP($ip) 25
_getForwardedClientIpFromServerArray($server) 34
_getRealIpAddr() 69
getClientIdentifier() 86
isAVideoUA() 99
getTmpFilePath($liveKey) 107
getCpuUsage() 115
getDynamicTolerance($baseTolerance = 600) 152
cleanOldCacheFiles($currentTmpFile) 171

calendar.json.php

Named symbol Source
createEvent($id, $weekday, $startMinute, $endMinute, $customTitle = '<string>', $backgroundColor = '<string>', $borderColor = '<string>', $textColor = '<string>', $extendedProps = [], $weekOffset = null) 22
createEventFromTimestamps($id, $startTimestamp, $endTimestamp, $customTitle = '<string>', $backgroundColor = '<string>', $borderColor = '<string>', $textColor = '<string>', $extendedProps = []) 63

commandLineSendAllRecordedToEncoder.php

Named symbol Source
humanFileSize($size, $unit = "") 52

controlRecording.php

Named symbol Source
logToFile($msg) 7

latestOrLive.php

Named symbol Source
matchWithRequest($row) 45

standAloneFiles/ffmpegCapabilities.php

Named symbol Source
ffmpeg_capabilitiesSafeExec($binary, array $args, $timeoutSeconds = FFMPEG_CAPABILITY_EXEC_TIMEOUT_SECONDS) 35
ffmpeg_parseVersion($versionOutput) 129
ffmpeg_hasToken($haystack, $token) 157
ffmpeg_hasMuxer($muxersOutput, $name) 165
ffmpeg_hasDemuxer($demuxersOutput, $name) 170
ffmpeg_hasProtocol($protocolsOutput, $name) 175
ffmpeg_hasEncoder($encodersOutput, $name) 180
ffmpeg_hasFilter($filtersOutput, $name) 185
ffmpeg_detectTlsBackend($buildconfOutput) 194
ffmpeg_hasReadableCaBundle() 219
ffmpeg_cfrSyncOption($helpFullOutput, $versionInfo = null) 243
ffmpegDetectCfrSyncOption($ffmpegBinary, $timeoutSeconds = FFMPEG_CAPABILITY_EXEC_TIMEOUT_SECONDS) 264
ffmpeg_parseFifoMuxerOptions($helpOutput) 281
ffmpegDetectCapabilities($ffmpegBinary, $timeoutSeconds = FFMPEG_CAPABILITY_EXEC_TIMEOUT_SECONDS) 307
ffmpegFifoMuxerFullySupported($capabilities) 378
ffmpegCapabilitiesSummaryText($capabilities) 409

standAloneFiles/ffmpegCapabilitiesTool.php

Named symbol Source
ffmpegCapToolPrintUsageAndExit() 37
ffmpegCapToolParseArgs(array $argv) 43
ffmpegCapToolCheckTcpConnectivity($host, $port, $timeoutSeconds = 5) 67

standAloneFiles/functions.php

Named symbol Source
getRestreamsRuning() 2
isRestreamFfmpegCommandLine($commandLine, $live_restreams_id, $liveTransmitionHistory_id) 73
findRestreamProcessIds(array $processLines, $live_restreams_id, $liveTransmitionHistory_id) 100
isRestreamRuning($live_restreams_id, $liveTransmitionHistory_id) 114

standAloneFiles/kill_ffmpeg_restream.php

Named symbol Source
tailFile($file, $lines = 50) 17
restreamProcessWritesToLog($pid, $logFile) 50
formatLastModifiedTime($timestamp) 70
_humanFileSize($size, $unit = "") 74

standAloneFiles/restreamLogging.php

Named symbol Source
rl_hostname() 23
rl_containerId() 34
rl_newCorrelationId() 58
rl_logEvent($event, array $fields = array()) 76
rl_tailFile($path, $maxBytes = 65536) 97
rl_truncateLogFileIfTooLarge($path, $maxBytes = 2097152) 122
rl_shouldEmitSnapshot($key, $minIntervalSeconds = 300) 141
rl_safeExec($command) 162
rl_getDiagnosticSnapshot(array $context = array()) 184
rl_getCgroupInfo() 273

standAloneFiles/restreamProfiles.php

Named symbol Source
redactDestinationForLog($url) 18
clearCommandURL($url) 35
buildAutomaticRestreamDestination($streamUrl, $streamKey, $expectedScheme = '') 64
getAutomaticRestreamDestinationPair($response) 93
shouldAttemptAutomaticRestreamFallback($primaryDestination, $fallbackDestination, $initialConnectionFailed) 132
automaticRestreamLaunchSamplesIndicateFailure(array $firstSample, array $secondSample) 157
restreamHostMatches($host, array $domains) 176
getRestreamProvider($url) 188
isYouTubeRestreamDestination($url) 207
isRestreamHlsSource($sourceUrl) 215
getRestreamInputReconnectOptions($sourceUrl, $reconnectOnNetworkError = true) 229
getRestreamOutputTail($destinationUrl, $tlsVerify = '') 241
getRestreamTlsOptions($destinationUrl, $tcurl) 246
getAudioConfiguration($source) 259
getRestreamVideoProfile($destinationUrl, $resolution = 720) 281
getRestreamVideoConfiguration($destinationUrl, $resolution = 720) 334
applyRestreamProtocolTestOverride(array $destinations, $forceProtocol) 356
getDestinationHostPort($url) 382
redactSecretsInText($text) 403
parseFfmpegProgressLine($text) 470
classifyFfmpegFailure($stderrTail, array $context = array()) 526
computeRestreamBackoffDelaySeconds($attemptNumber, array $sequence, $jitterPercent = 0, $randomFn = null) 570
getRestreamFifoConfigBounds() 629
getRestreamFifoDefaultAllowedProviders() 654
sanitizeRestreamFifoConfig($raw) 665
ffmpegEscapeFormatOptValue($value) 728
getRestreamFifoFormatOpts($destinationUrl, $tcurl) 740
getRestreamFifoOutputTail($destinationUrl, $tcurl, array $fifoConfig, $streamMap = '') 773
getRestreamFifoStreamMapFromProbe($probe) 819
probeRestreamFifoStreamMap($ffmpegBinary, $sourceUrl, $userAgent = '', $timeoutSeconds = 20) 863
shouldUseRestreamFifoForDestination($destinationUrl, array $fifoConfig, $capabilities) 908
isValidRecoveryRestreamRequest($live_restreams_id, $recoveryMode) 956

standAloneFiles/restreamer.json.php

Named symbol Source
getFfmpegCapabilitiesCached($ffmpegBinary) 29
_addLastSlash($word) 280
_hasLastSlash($word) 285
sanitizeLogFileComponent($value, $default = '<string>') 290
_getLiveKey($token) 305
runRestream($robj) 571
notifyStreamer($robj) 630
verifyTokenForAction($token) 662
postToURL($url, $data_string, $timeLimit = 10) 673
_isURL200($url, $forceRecheck = false) 732
_make_path($path) 779
startRestream($m3u8, $restreamsDestinations, $logFile, $robj, $tries = 1, $startTime = null, $fallbackDestination = '') 806
getRestreamFifoOutputTailOrEmpty($destinationUrl, $tcurl, array $fifoConfig, $capabilities, $isPassthrough, $sourceUrl, $userAgent) 1217
automaticRestreamInitialConnectionFailed($launch, $robj, $allowBlockingProbe = true) 1242
getAutomaticRestreamLaunchSample($launch, $robj) 1262
isRestreamProcessIdRunning($pid) 1302
stopAutomaticRestreamLaunch($launch, $robj) 1324
getRestreamRequestSummary($robj) 1347
buildRtmpTcurl(string $url): string 1369
isOpenSSLEnabled() 1390
whichffmpeg() 1407
getRestreamProcessIdsByMarkers($robj) 1421
getProcess($robj) 1433
killIfIsRunning($robj) 1498
replaceSlashesForPregMatch($str) 1546
_object_to_array($obj) 1551
_addQueryStringParameter($url, $varname, $value) 1568

standAloneFiles/saveDVR.json.php

Named symbol Source
copyDirectory($src, $dst) 187
setLastSegments($DVRFile, $total) 231

test.php

Named symbol Source
liveStatsTestUrlGetContents($url, $timeout = 0) 43
liveIsAllowedStatsTestURL($url) 135
liveNormalizeStatsTestURL($url) 170
liveStatsTestWget($url, $filename) 178
liveStatsTestLog($msg) 203

tools/testRestreams.php

Named symbol Source
listLogFiles($directory) 11
parseFfmpegLog($filePath) 30
getLogFileInfo($directory, $fileName) 114

view/getRestream.json.php

Named symbol Source
debugLog($line) 74

Diagnostics and validation

  1. Check the installed/enabled version and the dependencies/settings above.
  2. Identify the actual failing page, request, callback or worker and correlate its timestamp with the AVideo log.
  3. Follow the linked method and caller. Check business-state changes and output artifacts as well as HTTP status.
  4. Reproduce the relevant workflow in a test environment. External provider, Encoder, live-server, storage, payment and authenticated flows require their real integrations.

Related test filenames (name matches only; not executed by generation):

Shared diagnostic workflow. This page is not a security audit or a claim of end-to-end validation.

Clone this wiki locally