Repository navigation
Technical Reference Objects 04
Daniel Neto edited this page Oct 29, 2026
·
1 revision
Audience: developers and AI-assisted code lookup. Review date: 2026-10-29. Static inventory, not an endpoint specification, functional audit or integration-test result. Source files were read without executing application handlers. Nonempty string defaults are omitted.
| Named function/method | Source line |
|---|---|
isAVideoMobileApp($user_agent = "") |
11 |
isAVideoEncoder($user_agent = "") |
30 |
isCDN() |
49 |
isFromCDN($url) |
57 |
isAVideo($user_agent = "") |
65 |
isAVideoEncoderOnSameDomain() |
84 |
isSameDomainAsMyAVideo($url) |
94 |
isAVideoStreamer($user_agent = "") |
103 |
isAVideoUserAgent($user_agent = "") |
121 |
isAVideoStorage($user_agent = "") |
149 |
getSelfUserAgent() |
169 |
isSelfUserAgent() |
182 |
requestComesFromSameDomainAsMyAVideo() |
206 |
avideoShutdown() |
221 |
| Named function/method | Source line |
|---|---|
isSafari() |
3 |
fixQuotesIfSafari($str) |
18 |
getLanguageFromBrowser() |
27 |
deviceIdToObject($deviceID) |
36 |
getDeviceID($useRandomString = true) |
78 |
fakeBrowser($url) |
123 |
getUserAgentInfo($user_agent = '') |
143 |
get_browser_name($user_agent = "") |
147 |
isOldChromeVersion() |
251 |
getOS($user_agent = "") |
266 |
| Named function/method | Source line |
|---|---|
getDockerVarsFileName() |
3 |
getDockerVars() |
12 |
isDocker() |
26 |
getDockerInternalURL() |
31 |
getDockerStatsURL() |
36 |
| Named function/method | Source line |
|---|---|
getDurationFromFile($file) |
2 |
wget($url, $filename, $debug = false, $verifyTLS = false, $failOnError = false) |
71 |
getDirSize($dir, $forceNew = false) |
142 |
rrmdirCommandLine($dir, $async = false) |
186 |
secureUnzipDirectory($zipFile, $destination) |
205 |
removeDirectory($dir) |
354 |
unzipDirectory($filename, $destination) |
376 |
zipDirectory($source, $destination) |
450 |
isPortOpenInternal($host, $port) |
527 |
isLocalPortOpen($port) |
559 |
isPortOpenExternal($port, $timeout = 10) |
564 |
getPIDUsingPort($port) |
589 |
killProcessRuningOnPort($port) |
625 |
canExecutePgrep() |
641 |
getProcessPids($processName) |
648 |
getCommandByPid($pid) |
679 |
execAsync($command, $keyword = null) |
700 |
findProcess($keyword) |
772 |
killProcessFromKeyword($keyword, $ageInSeconds = 0) |
805 |
killProcess($pid) |
822 |
isProcessOlderThan($pid, $ageInSeconds) |
854 |
setServerTimezone() |
897 |
| Named function/method | Source line |
|---|---|
get_ffmpeg($ignoreGPU = false) |
4 |
get_ffprobe() |
22 |
convertVideoToMP3FileIfNotExists($videos_id, $forceTry = 0) |
38 |
cleanupDownloadsDirectory($resolution = 720) |
130 |
m3u8ToMP4($input, $makeItPermanent = false, $force = false) |
174 |
m3u8ToMP4RemoteFFMpeg($input, $callback) |
281 |
getConvertVideoFileWithFFMPEGProgressFilename($toFileLocation) |
352 |
convertVideoToDownlaodProgress($toFileLocation) |
358 |
parseFFMPEGProgress($progressFilename) |
364 |
removeUserAgentIfNotURL($cmd) |
455 |
convertVideoFileWithFFMPEGIsLockedInfo($toFileLocation) |
463 |
getFFmpegConversionDefaultParameters() |
478 |
getFFmpegConversionParameterRules() |
489 |
parseFFmpegConversionParameters($parameters, &$error = '') |
554 |
getFFmpegConversionParametersArgs() |
617 |
getFFmpegExecutableArgs($ignoreGPU = false) |
642 |
buildFFMPEGCommandArgs($fromFileLocation, $toFileLocation, $try = 0, $cpuUsagePercentage = 80) |
662 |
implodeFFMPEGArgsForShell(array $args) |
721 |
buildFFMPEGCommand($fromFileLocation, $toFileLocation, $try = 0, $cpuUsagePercentage = 80) |
733 |
execFFMPEGArgs(array $args, $logFile = '', &$output = []) |
749 |
convertVideoFileWithFFMPEG($fromFileLocation, $toFileLocation, $logFile = '', $try = 0) |
779 |
convertVideoFileWithFFMPEGAsyncOrRemote($fromFileLocation, $toFileLocation, $keyword, $callback = '') |
813 |
cutVideoWithFFmpeg($inputFile, $startTimeInSeconds, $endTimeInSeconds, $outputFile, $aspectRatio) |
829 |
buildSecureFFMPEGCallback($action, $params = []) |
909 |
getVideoByIdForCallback($videos_id) |
938 |
validateCallbackParams($params, $required) |
951 |
sanitizeAlphanumericForCallback($value) |
966 |
handleCallbackUpdateVideoStatus($params, $notify) |
977 |
handleCallbackTriggerPluginHook($params, $notify) |
996 |
handleCallbackUpdateVideoMetadata($params, $notify) |
1061 |
handleCallbackLogEvent($params, $notify) |
1095 |
getFFMPEGCallbackHandlers() |
1106 |
processFFMPEGCallback($callback, $notify) |
1122 |
buildFFMPEGRemoteURL($actionParams, $callback=''<string>'') |
1161 |
execFFMPEGAsyncOrRemote($command, $keyword, $callback=''<string>'') |
1185 |
getFFMPEGRemoteLog($keyword, $standAloneFFMPEG='') |
1198 |
stopFFMPEGRemote($keyword, $standAloneFFMPEG='') |
1210 |
testFFMPEGRemote($standAloneFFMPEG='') |
1221 |
listFFMPEGRemote($keyword = ''<string>'') |
1232 |
killFFMPEGRemote($pid, $standAloneFFMPEG='') |
1243 |
isKeywordRunningFFMPEGRemote($keyword, $standAloneFFMPEG='') |
1254 |
deleteFolderFFMPEGRemote($videoFilename, $standAloneFFMPEG='') |
1265 |
deleteFileFFMPEGRemote($filePath, $standAloneFFMPEG='') |
1276 |
buildLocalPathForNotify($global, $notify) |
1298 |
buildRemoteUrlForNotify($standAloneFFMPEG, $notify) |
1322 |
createNotifyResponseTemplate($notify) |
1333 |
processNotifyVideoFile($notify) |
1353 |
addKeywordToFFmpegCommand(string $command, string $keyword): string |
1417 |
getVideoInfo($filePath) |
1440 |
| Named function/method | Source line |
|---|---|
checkFileModified($filePath) |
3 |
file_upload_max_size() |
22 |
getServerLimits() |
40 |
parse_size($size) |
65 |
humanFileSize($size, $unit = "") |
77 |
get_max_file_size() |
99 |
checkVideosDir() |
105 |
getVideosDir() |
114 |
rrmdir($dir) |
124 |
make_path($path) |
177 |
setPathPermissions($path) |
199 |
local_get_contents($path) |
220 |
try_get_contents_from_local($url) |
230 |
tail($filepath, $lines = 1, $adaptive = true, $returnArray = false) |
296 |
getUsageFromFilename($filename, $dir = "") |
365 |
getUsageFromURL($url) |
536 |
foldersize($path) |
592 |
getDiskUsage() |
614 |
copyfile_chunked($infile, $outfile) |
643 |
wgetLockFile($url) |
725 |
wgetLock($url) |
730 |
wgetRemoveLock($url) |
736 |
getLockFile($name) |
745 |
setLock($name) |
750 |
isLock($name, $timeout = 60) |
756 |
removeLock($name) |
767 |
wgetIsLocked($url) |
776 |
isWritable($dir) |
791 |
_isWritable($dir) |
808 |
getTmpDir($subdir = "") |
819 |
getTmpFile() |
857 |
_file_put_contents($filename, $data, $flags = 0, $context = null) |
862 |
_glob($dir, $pattern, $recreateCache = false) |
880 |
globVideosDir($filename, $filesOnly = false, $recreateCache = false) |
915 |
getIncludeFileContent($filePath, $varsArray = [], $setCacheName = false) |
942 |
mime_content_type_per_filename($filename) |
1005 |
mime_content_type($filename) |
1107 |
isDummyFile($filePath) |
1114 |
listFolderFiles($dir) |
1139 |
fixSystemPath() |
1169 |
fixPath($path, $addLastSlash = false) |
1175 |
getVideosDirectoryUsageInfo() |
1192 |
findMP4File($folderPath) |
1240 |
findMP3File($folderPath) |
1262 |
readJsonFile($filePath) |
1285 |
No named function/method declarations were extracted. Inspect top-level code, includes and the caller.
| Named function/method | Source line |
|---|---|
humanTiming($time, $precision = 0, $useDatabaseTime = true, $addAgo = false) |
4 |
humanTimingOrDate($time, $precision = 0, $useDatabaseTime = true, $addAgo = false) |
18 |
humanTimingAgo($time, $precision = 0, $useDatabaseTime = true) |
50 |
humanTimingAfterwards($time, $precision = 0, $useDatabaseTime = true) |
59 |
secondsToHumanTiming($time, $precision = 0, $addAgo = false) |
73 |
seconds2human($ss) |
137 |
secondsIntervalHuman($time, $useDatabaseTime = true) |
166 |
secondsToTime($seconds, $precision = '<string>') |
176 |
timeToSecondsInt($hms) |
185 |
secondsInterval($time1, $time2) |
198 |
isTimeForFuture($time, $useDatabaseTime = true) |
213 |
secondsIntervalFromNow($time, $useDatabaseTimeOrTimezoneString = true) |
223 |
parseToFloat($numString) |
239 |
Declared classes/interfaces/traits: Imagick.
| Named function/method | Source line |
|---|---|
getImageFormat() |
10 |
coalesceImages() |
15 |
nextImage() |
20 |
resizeImage() |
25 |
deconstructImages() |
29 |
clear() |
34 |
destroy() |
38 |
writeImages() |
42 |
convertThumbsIfNotExists($source, $destination) |
47 |
getImageOrientation($imagePath) |
76 |
is_image_fully_transparent($filename) |
101 |
totalImageColors($image_path) |
129 |
isImageCorrupted($image_path) |
157 |
isGoodImage($fn) |
181 |
defaultIsPortrait() |
200 |
defaultIsLandscape() |
215 |
fileIsAnValidImage($filepath) |
221 |
deleteInvalidImage($filepath) |
242 |
isImage($file) |
256 |
convertImageToOG($source, $destination) |
271 |
convertImageToRoku($source, $destination) |
289 |
convertImageIfNotExists($source, $destination, $width, $height, $scaleUp = true) |
294 |
getVideoImagewithHoverAnimation($relativePath, $relativePathHoverAnimation = ''<string>'', $preloadImage = false, $doNotUseAnimatedGif = false) |
355 |
getImageTagIfExists($relativePath, $title = ''<string>''<string>''<string>'img img-responsive', $lazyLoad = false, $preloadImage = false) |
367 |
im_resize_gif($file_src, $file_dest, $max_width, $max_height) |
423 |
im_resize_max_size($file_src, $file_dest, $max_width, $max_height) |
445 |
detect_image_type($file_path) |
518 |
getimgsize($file_src) |
552 |
getImageFormat($file) |
593 |
im_resize($file_src, $file_dest, $wd, $hd, $q = 80) |
632 |
scaleUpAndMantainAspectRatioFinalSizes($new_w, $old_w, $new_h, $old_h) |
749 |
scaleUpImage($file_src, $file_dest, $wd, $hd) |
785 |
resize_png_image($source_file_path, $destination_file_path, $target_width, $target_height) |
873 |
convertImage($originalImage, $outputImage, $quality, $useExif = false) |
911 |
base64DataToImage($imgBase64) |
1026 |
normalizeBase64ImageData($imgBase64) |
1034 |
estimateBase64DecodedSize($imgBase64) |
1050 |
isValidImageBinaryData($fileData) |
1067 |
getValidatedImageBinaryFromBase64($imgBase64, $maxBase64Size = 2097152, &$errorMsg = '') |
1100 |
saveBase64DataToPNGImage($imgBase64, $filePath) |
1135 |
createWebPIfNotExists($path) |
1145 |
getCroppie( $buttonTitle, $callBackJSFunction, $resultWidth = 0, $resultHeight = 0, $viewportWidth = 0, $boundary = 25, $viewportHeight = 0, $enforceBoundary = true, $options = [] ) |
1163 |
saveCroppieImage($destination, $postIndex = '<string>') |
1188 |
isImageNotFound($imgURL) |
1196 |
createColorfulTextSpans($string) |
1204 |
pwaIconsArray($favicon = '', $forceDelete = false) |
1215 |
pwaIcon($src, $type, $sizes) |
1248 |
Declared classes/interfaces/traits: AVideoLog.
| Named function/method | Source line |
|---|---|
TimeLogStart($name) |
3 |
TimeLogEnd($name, $line, $TimeLogLimit = 0.7) |
19 |
avideoRequestId() |
74 |
avideoDiagnosticMessage($message) |
89 |
avideoDiagnosticLocation($file) |
109 |
avideoDiagnosticFrame($file, $line, $function) |
120 |
avideoDiagnosticTrace($message) |
127 |
avideoRecentLogMessages($message = null) |
144 |
avideoLogException($exception) |
155 |
avideoDiagnosticSummary($record) |
175 |
avideoWriteRequestDiagnostic($event, $details = [], $rateLimitKey = '') |
189 |
avideoLogHttpError($error = null) |
228 |
avideoRegisterRequestDiagnostics() |
266 |
_error_log_debug($message, $show_args = false) |
286 |
_error_log_stringify_message($message) |
299 |
_error_log_build_message($message, $type = 0) |
311 |
_error_log_truncate_message($message) |
342 |
_error_log($message, $type = 0, $doNotRepeat = null) |
362 |
rateLimitedLog($key, $message, $ttl = 300, $type = null) |
405 |
getAVideoLogPermissionCheckFile($logfile) |
458 |
getAVideoWebServerUser() |
463 |
canCurrentProcessChown() |
486 |
ensureAVideoLogWritable($force = false, $ttl = 300) |
491 |
isSchedulerRun() |
563 |
rotateAVideoLog() |
576 |
_dieAndLogObject($obj, $prefix = "") |
636 |
| Named function/method | Source line |
|---|---|
setSiteSendMessage(\PHPMailer\PHPMailer\PHPMailer &$mail) |
10 |
sendSiteEmail($to, $subject, $message, $fromEmail = ''<string>'') |
61 |
partition(array $list, $totalItens) |
179 |
sendSiteEmailAsync($to, $subject, $message) |
200 |
sendBulkEmail($users_id_array, $emails_array, $subject, $message) |
222 |
createEmailMessageFromTemplate($message) |
268 |
sendEmailToSiteOwner($subject, $message) |
287 |
isValidEmail($email, $checkHost = false) |
320 |
is_email($strOrArray) |
378 |
Start
Install and update
- Install on Ubuntu 24.04 or 26.04
- Installation Setup Page
- Scheduler cron job (required)
- Set up email
- Use HTTPS
- Own Encoder
- Docker
- Update AVideo
- Backup
- Secure file permissions
- Server command-line tools
- Hidden configuration options
Videos
- Upload a video
- Local Encoder (on your computer)
- Bulk upload by FTP
- Import a channel
- Publish on YouTube and social media
- Privacy options
- Only for logged-in users
- Resolutions by user group
- Storage options
- Move and protect video files
- Video does not play
Users
Live
- Make a live stream
- Stream with OBS
- Own live server
- One live server, many sites
- Live server install errors
- Live does not play
Plugins
Problems
Other
- Translate your site
- Write a plugin (developers)
- Technical reference (developers and advanced administrators)
Old and retired guides