IP Inlay for FileMaker

Inlay Function Reference Video / Audio

Video / Audio

FFmpeg based metadata, transcoding, and tooling checks. 4 functions.

Inlay_VIDEO_METADATA

Video / Audio Updated Returns JSON

Analyzes a media file with FFprobe and returns its metadata as JSON.

The plugin hands the file to the Inlay helper, which runs FFprobe and returns the full probe result. The report covers container format, stream list, duration, and frame information.

FFprobe must be installed first. Use Inlay_CHECK_FFMPEG to confirm it is present and Inlay_INSTALL_FFMPEG to install it.

Declaration

Inlay_VIDEO_METADATA ( "/Users/alice/Media/clip.mov" )

Parameters

InputPath Required
the media file to analyze. Accepts a bare HFS path (Macintosh HD:Users:...), a filemac:/... URL, a file:/... URL, a filewin:/... URL, or a POSIX path.
FFprobePath Optional
absolute path to a specific FFprobe binary. Defaults to the managed install when omitted.

Returns

JSON string On success returns the FFprobe JSON describing the file's format and streams. On failure returns {"ok":false,"message":"..."}, for example when the helper is missing or InputPath is empty.

Use Cases

  • Read a clip's duration, resolution, and codec before deciding how to transcode it.
  • Validate that an uploaded file is a real, playable media file rather than a corrupt or mislabeled upload.

Notes

  • Available on macOS and Windows only.
  • Pass FFprobePath explicitly when more than one FFprobe build is present to remove ambiguity.

See Also

Inlay_TRANSCODE Inlay_CHECK_FFMPEG Inlay_INSTALL_FFMPEG

Inlay_TRANSCODE

Video / Audio Updated Returns JSON

Starts a non-blocking FFmpeg transcode job and returns immediately.

A cancelable progress window appears while encoding. The call returns {"ok":true,"status":"started","job_id":"...","status_path":"...","result_path":"...","args_path":"..."}. Poll result_path until it reports {"ok":true,"status":"done"} or an error.

There are two modes. Simple mode takes InputPath and OutputPath and produces a browser-ready H.264 MP4 with AAC audio. Advanced mode takes a single AdvancedJob object that drives the whole FFmpeg command, enabling multiple outputs from one pass (for example 1080p plus a proxy plus a poster PNG), filter_complex graphs, and arbitrary stream mapping.

Declaration

Inlay_TRANSCODE ( JSONSetElement ( "{}" ;
    [ "InputPath" ; "/Users/alice/Media/raw.mov" ; JSONString ] ;
    [ "OutputPath" ; "/Users/alice/Media/out.mp4" ; JSONString ]
  ) )

Parameters

InputPath Required
source media file, required in simple mode. Accepts bare HFS, filemac:/..., file:/..., filewin:/..., or POSIX paths.
OutputPath Required
destination file, required in simple mode. Should end in .mp4 for the default H.264 output.
FfmpegArgs Optional
JSON array of FFmpeg tokens inserted between the input and output, for example ["-c:v","libx264","-crf","18"]. Simple mode only.
AdvancedJob Required
a JSON object describing the full job. Required in advanced mode and cannot be combined with any simple-mode parameter. Required keys are inputs (array of {"path":...}) and outputs (array of {"path":...,"args":[...]}). Optional keys are global_args, filter_complex, job_id, ffmpeg_path, ffprobe_path, and metadata with tape_name and master_clip_name.
JobId Optional
identifier for the job; auto-generated if omitted. Simple mode only.
FfmpegPath Optional
absolute path to a specific FFmpeg binary. Simple mode only.
FfprobePath Optional
absolute path to a specific FFprobe binary. Simple mode only.
TapeName Optional
tape name forwarded to the progress payload. Simple mode only.
MasterClipName Optional
master clip name forwarded to the progress payload. Simple mode only.

Returns

JSON string On a successful start returns {"ok":true,"status":"started","job_id":"...","status_path":"...","result_path":"...","args_path":"..."}. The helper then writes progress to status_path and the final outcome to result_path. On a bad request returns {"ok":false,"message":"..."}.

Use Cases

  • Convert an arbitrary source file to a web-playable MP4 with a two-argument simple call.
  • Produce delivery and proxy renditions plus a poster frame from one source in a single advanced pass.

Notes

  • Available on macOS and Windows only.
  • The function returns before encoding finishes; treat result_path as the authoritative outcome record.
  • In advanced mode AdvancedJob must stand alone; mixing it with InputPath, OutputPath, or other simple-mode keys is rejected.
  • Legacy keys inputPath, outputPath, ffmpegArgs, and advancedJob are accepted for one release cycle.

See Also

Inlay_VIDEO_METADATA Inlay_CHECK_FFMPEG Inlay_INSTALL_FFMPEG

Inlay_INSTALL_FFMPEG

Video / Audio Updated Returns JSON

Downloads and installs FFmpeg, FFprobe, and FFplay into Inlay's managed tools directory.

Pass a single JSON object of download URLs for the three binaries. The Inlay helper fetches them and installs them, then this function returns the helper's final result JSON.

Declaration

Inlay_INSTALL_FFMPEG ( JSONSetElement ( "{}" ;
    [ "ffmpeg" ; "https://example.com/ffmpeg" ; JSONString ] ;
    [ "ffprobe" ; "https://example.com/ffprobe" ; JSONString ] ;
    [ "ffplay" ; "https://example.com/ffplay" ; JSONString ]
  ) )

Parameters

UrlsJson Required
a JSON object with download URLs for all three tools: {"ffmpeg":"...","ffprobe":"...","ffplay":"..."}. All three URLs are required and must be non-empty.

Returns

JSON string On success returns the helper's install result JSON. On a bad request returns {"ok":false,"message":"..."}, for example when the argument is not a JSON object or any of the three URLs is missing or empty.

Use Cases

  • Provision FFmpeg on a workstation that has never run Inlay's media features, using URLs you host.
  • Re-install or update the managed tool binaries to a known version across a fleet.

Notes

  • Available on macOS and Windows only.
  • Package-manager shortcuts are not supported; the literal strings brew and urls are rejected. Always pass the JSON object of URLs.
  • Binaries install to Inlay's managed tools/bin directory, which Inlay_TRANSCODE and Inlay_VIDEO_METADATA use by default.

See Also

Inlay_CHECK_FFMPEG Inlay_TRANSCODE Inlay_VIDEO_METADATA

Inlay_CHECK_FFMPEG

Video / Audio Updated Returns JSON

Reports whether FFmpeg, FFprobe, and FFplay are installed and where.

The function always returns ok:true; branch your script on the installed field. When the tools are present, each tool entry carries its path and version. When none are found, the response includes a message pointing to Inlay_INSTALL_FFMPEG.

Only Inlay's managed tools directory is checked, so this reflects what Inlay's media functions will actually use.

Declaration

Inlay_CHECK_FFMPEG

This function takes no parameters.

Returns

JSON string When at least one tool is found returns {"ok":true,"installed":true,"ffmpeg":{"installed":true,"version":"...","path":"..."},"ffprobe":{...},"ffplay":{...}}. A tool that is absent reports {"installed":false}, and a tool whose version cannot be read reports its path with an error field. When none are found returns {"ok":true,"installed":false,"message":"..."}.

Use Cases

  • Gate video workflows at session start, prompting the user to install tools before any metadata or transcode call.
  • Read the returned ffmpeg and ffprobe paths to pass as FfmpegPath and FfprobePath in Inlay_TRANSCODE and Inlay_VIDEO_METADATA.

Notes

  • Available on macOS and Windows only.
  • Only the managed tools directory is searched; a copy of FFmpeg elsewhere on PATH is not reported here.

See Also

Inlay_INSTALL_FFMPEG Inlay_TRANSCODE Inlay_VIDEO_METADATA