# Changelog of Bulk FFmpeg Media Processor – 100 URLs/Run (`automa-flow/bulk-ffmpeg-media-processor`) Actor

- **URL**: https://apify.com/automa-flow/bulk-ffmpeg-media-processor/changelog.md
- **Full Actor documentation**: https://apify.com/automa-flow/bulk-ffmpeg-media-processor.md

## Changelog

### 2026-09-26: More reliable requests and spending checks

#### Fixes

- Spending checks and billing receipts use the effective event prices supplied for your run, including discounts and zero-priced events.

### 0.1.1 - 2026-09-24

#### Changes

The default memory is 1024 MB and the maximum is 2048 MB, so a short file no longer starts on 2048 MB. A probe costs $0.003. A transform costs $0.01 per started minute of that file, minimum one minute, and the row's `billed_units` shows how many events were charged. A transform of a file with no duration is refused instead of being billed as one minute. Set `maxTotalChargeUsd` to at least $0.0031. A lower cap is rejected before the run starts, even though one probe at 1024 MB is $0.00305 in events. A file's full minute price is reserved together, so two long files cannot stall each other. Downloads stop once `maxTotalInputBytes` is used. A content-length hold becomes spent bytes as they arrive, so it does not block another file that still fits. Bytes that already arrived stay counted even when the response is cut short. Gzip responses are decoded, the shared cap counts the wire size, and `maxInputBytesPerItem` counts the decoded media. Inflation stops at that cap for gzip, raw deflate and Brotli. An interrupted run keeps each finished row and publishes it on resume without charging that row again. An integration should put the dataset id in `datasetId` (the platform template is `{{resource.defaultDatasetId}}`). A nested webhook id is not read, and that input finishes without a failed run.

This version is not published to the Apify Store. There is no previous public version to migrate.

### 0.1.0 - 2026-09-23

#### Changes

Process up to 100 direct video or audio URLs in one run. Each file gets its own status row. Successful probe JSON, speech audio, thumbnails, remuxes and analysis proxies are stored in the run Key-Value Store. A file that fails releases its price reservation, so another file in the same run can still succeed inside `maxTotalChargeUsd`. Remux and proxy results are accepted only after ffprobe can read them, and a proxy wider than `maxWidth` is `PROCESSING_FAILED`. At the default 2048 MB the platform bills two start events, so the smallest cap that can finish one probe is $0.00110.

This version is not published to the Apify Store. The event prices in the Actor definition are provisional until an Apify Cloud cost benchmark is done. There is no previous public version to migrate.
