Fire TV Family 4K All Subtitle Convert Audio Conform Profile¶
Generated from stock preset pack fire-tv-family-all-sub-convert-audio-conform.
Dependencies¶
| Tool | Needed | Why |
|---|---|---|
ffmpeg |
required | scenario execution, encode/transcode, and mux packaging |
ffprobe |
required | criteria probing and stream/metadata inspection |
E2E Verification¶
This profile is considered e2e-verified when its mapped suites pass in CI.
| Suite | What it proves | Toolchain version report |
|---|---|---|
tests/e2e/run_profile_actions_e2e.sh |
action-level output behavior, guardrails, and subtitle-intent pathways | tests/e2e/.reports/latest/run_profile_actions_e2e_toolchain_versions.md |
- Combined toolchain snapshot: Latest E2E Toolchain Report
Input Envelope¶
| Field | Value |
|---|---|
| Codec | any |
| Bit depth | any |
| Color space | any |
| Min resolution | 1921x1081 |
| Max resolution | 3840x2160 |
Scenario Map¶
| Scenario | Command |
|---|---|
RES_JUST_RIGHT |
transcode_hevc_4k_all_sub_convert_audio_conform_profile.sh |
ELSE |
profile_guardrail_skip.sh (profile guardrail skip) |
Runtime Behavior¶
- Scenario
RES_JUST_RIGHTuses action scripttranscode_hevc_4k_all_sub_convert_audio_conform_profile.sh. - Scenario
ELSEuses action scriptprofile_guardrail_skip.sh.
Action summary from transcode_hevc_4k_all_sub_convert_audio_conform_profile.sh:
- Inherits the 4K HEVC encode path from the smart-English audio-conform action.
- Defaults subtitle behavior to
all_sub_preserve + subtitle_convert. - Text subtitles normalize to
mov_textwhen MP4 remains viable. - Bitmap subtitles fall back to MKV preservation by default.
- Preserves AAC and Dolby-family audio streams where already acceptable.
- Conforms DTS-family and PCM-family audio when needed.
- Supports the same bounded video-only
aggressive_vmafmode as the underlying HEVC lane.
Operator knobs from transcode_hevc_4k_all_sub_convert_audio_conform_profile.sh:
VFO_ENCODER_MODE=auto|hw|cpuVFO_MP4_STREAM_MODE=fmp4_faststart|fmp4|faststartVFO_SUBTITLE_SELECTION_SCOPE=all_sub_preserveVFO_SUBTITLE_MODE=subtitle_convertVFO_SUBTITLE_CONVERT_BITMAP_POLICY=preserve_mkv|failVFO_QUALITY_MODE=standard|aggressive_vmafSCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"export VFO_SUBTITLE_SELECTION_SCOPE="${VFO_SUBTITLE_SELECTION_SCOPE:-all_sub_preserve}"export VFO_SUBTITLE_MODE="${VFO_SUBTITLE_MODE:-subtitle_convert}"export VFO_SUBTITLE_CONVERT_BITMAP_POLICY="${VFO_SUBTITLE_CONVERT_BITMAP_POLICY:-preserve_mkv}"
Starting Inputs And Expected Outputs¶
| Aspect | What this profile expects / does |
|---|---|
| Starting containers | mkv, mp4, mov, mxf (anything ffmpeg can demux) |
| Required codec envelope | any / any-bit / any |
| Required resolution range | 1921x1081 to 3840x2160 |
| If criteria do not match | candidate is routed to another profile or skipped |
| If criteria match | scenario order is evaluated and first match executes |
| Output intent | profile-specific output written by selected scenario command |
Flow¶
flowchart LR
classDef gate fill:#fff7ed,stroke:#f59e0b,color:#7c2d12,stroke-width:1.5px;
classDef stage fill:#e0f2fe,stroke:#0284c7,color:#0c4a6e,stroke-width:1.2px;
classDef output fill:#dcfce7,stroke:#16a34a,color:#14532d,stroke-width:1.2px;
classDef skip fill:#f3f4f6,stroke:#6b7280,color:#1f2937,stroke-width:1.2px;
A[Input candidate: mkv / mp4 / mov / mxf]:::stage --> B[Probe codec bits color resolution]:::stage
B --> C{Matches profile criteria envelope?}:::gate
C -->|No| Z[Handled by other profile or skipped]:::skip
C -->|Yes| D{Evaluate scenarios in order}:::gate
D --> E[First match: RES_JUST_RIGHT]:::stage
E --> F[Execute: transcode_hevc_4k_all_sub_convert_audio_conform_profile.sh]:::stage
F --> G[Write profile output artifact]:::output
Source¶
- Preset file:
services/vfo/presets/fire-tv-family-all-sub-convert-audio-conform/vfo_config.preset.conf - Generated by:
infra/scripts/generate-profile-docs.sh