{"feature_extractor_name":"transcoding_extractor","version":"v1","feature_extractor_id":"transcoding_extractor_v1","description":"Video transcoding to H.264/H.265 MP4.\n\nConverts source video to a web-playable MP4 uploaded to object storage, with three decode paths selected per file:\n1. RED R3D via the REDline CLI\n2. ARRI RAW (.ari/.arriraw/.arx, or ARRI codecs hiding inside MXF/MOV containers) via ART CMD\n3. Everything else via FFmpeg directly\n\nMisleading extensions are handled: containers are codec-probed with ffprobe before routing. When a native SDK is missing the extractor falls back to FFmpeg (set require_native_sdks to fail instead).\n\nEach output document carries `converted_url` plus source_format, width/height and duration.\n\n**Use for:** making RAW camera archives (RED/ARRI) ingestable and playable, normalizing mixed-codec libraries to one mezzanine format.\n\n**Not for:** scene segmentation or embeddings (chain a collection with multimodal/video extractors on top of the converted output).","icon":"film","category":"video","source":"builtin","type_mode":"multimodal","expected_input_types":null,"inference_type":"general","input_schema":{"description":"Input schema for the transcoding extractor.\n\nProvide a video file URL or S3 path. RAW camera formats (R3D, ARRI RAW)\nare supported alongside standard containers.","examples":[{"video":"s3://bucket/raw-footage/A001_C001_0101XX.R3D"},{"video":"s3://bucket/raw-footage/scene_12.mxf"}],"properties":{"video":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Video URL or S3 path. Formats: R3D, ARI/ARRIRAW/ARX, MXF, MP4, MOV, AVI, MKV, WebM and anything else FFmpeg can decode.","examples":["s3://bucket/raw/A001_C001.R3D"],"title":"Video"}},"title":"TranscodingExtractorInput","type":"object"},"output_schema":{"additionalProperties":true,"description":"Output schema for the transcoding extractor.\n\nOne document per source object, carrying the converted MP4 URL and\ncheap metadata probed from the output file.","properties":{"converted_url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Object-storage URL of the transcoded H.264/H.265 MP4.","title":"Converted Url"},"source_format":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Detected source format family: 'r3d' (RED), 'arri' (ARRI RAW) or 'standard' (FFmpeg-decodable).","title":"Source Format"},"width":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Output video width in pixels.","title":"Width"},"height":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Output video height in pixels.","title":"Height"},"duration_sec":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Output duration in seconds.","title":"Duration Sec"},"converted_size_bytes":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Size of the converted file in bytes.","title":"Converted Size Bytes"}},"title":"TranscodingExtractorOutput","type":"object"},"parameter_schema":{"description":"Parameters for the Transcoding Extractor.\n\nTranscodes source video (RED R3D, ARRI RAW, MXF, or any FFmpeg-decodable\nformat) to a web-playable H.264/H.265 MP4 uploaded to object storage.\nThe output document carries the converted file's URL in `converted_url`.","examples":[{"crf":23,"description":"Default mezzanine (H.264, 1080p cap)","extractor_type":"transcoding_extractor","max_resolution":1080,"output_codec":"libx264","preset":"medium"},{"crf":18,"description":"High-quality proxy from RAW camera originals","extractor_type":"transcoding_extractor","max_resolution":2160,"preset":"slow","require_native_sdks":true}],"properties":{"extractor_type":{"const":"transcoding_extractor","default":"transcoding_extractor","description":"Discriminator field. Must be 'transcoding_extractor'.","title":"Extractor Type","type":"string"},"output_codec":{"default":"libx264","description":"Output video codec. libx264 (H.264) for maximum player compatibility; libx265 (H.265) for smaller files.","enum":["libx264","libx265"],"title":"Output Codec","type":"string"},"crf":{"default":23,"description":"Constant Rate Factor. Lower is higher quality and larger files. 18-23 is the usual H.264 range; 23 is a good default mezzanine.","maximum":51,"minimum":0,"title":"Crf","type":"integer"},"preset":{"default":"medium","description":"FFmpeg encoding speed preset. Slower presets compress better at the same quality but take more CPU time.","enum":["ultrafast","superfast","veryfast","faster","fast","medium","slow","slower","veryslow"],"title":"Preset","type":"string"},"max_resolution":{"anyOf":[{"maximum":4320,"minimum":144,"type":"integer"},{"type":"null"}],"default":1080,"description":"Cap output height in pixels (width scales proportionally). Set null to keep the source resolution.","title":"Max Resolution"},"audio_codec":{"default":"aac","description":"Audio codec for the output ('copy' passes audio through).","enum":["aac","mp3","copy"],"title":"Audio Codec","type":"string"},"require_native_sdks":{"default":false,"description":"If true, fail a RED/ARRI file instead of falling back to plain FFmpeg when the REDline/art-cmd CLI is not installed on the engine image. Leave false to get best-effort conversion.","title":"Require Native Sdks","type":"boolean"}},"title":"TranscodingExtractorParams","type":"object"},"supported_input_types":["video"],"max_inputs":{"video":1},"default_parameters":{},"costs":{"tier":2,"tier_label":"STANDARD","rates":[{"unit":"extraction","credits_per_unit":20,"description":"Per source file transcoded to H.264 MP4"}]},"required_vector_indexes":null,"required_payload_indexes":[],"position_fields":[],"capabilities":["batch"],"example_usage":{"namespace":{"feature_extractors":[{"name":"transcoding_extractor","version":"v1"}]},"collection":{"feature_extractor":{"name":"transcoding_extractor","version":"v1","input_mappings":{"video":"<your_video_field>"},"parameters":{"output_codec":"libx264","crf":23,"preset":"medium","max_resolution":1080,"audio_codec":"aac","require_native_sdks":false}}}}}