# RecompressAssetBundleAsync(string, string, BuildCompression, uint, ThreadPriority)

> Asynchronously recompress a downloaded/stored AssetBundle from one BuildCompression to another.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine](/engine/6000.3/script-reference/unityengine.md)
* **Assembly:** UnityEngine.AssetBundleModule

```csharp
public static AssetBundleRecompressOperation RecompressAssetBundleAsync(string inputPath, string outputPath, BuildCompression method, uint expectedCRC = 0, ThreadPriority priority = ThreadPriority.Low)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): Path to the [AssetBundle](/engine/6000.3/script-reference/unityengine/assetbundle.md) to recompress.**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): Path to the recompressed [AssetBundle](/engine/6000.3/script-reference/unityengine/assetbundle.md) to be generated. Can be the same as inputPath.**** (\[BuildCompression]\(/engine/6000.3/script-reference/unityengine/buildcompression)): The compression method, level and blocksize to use during recompression. Only some [BuildCompression](/engine/6000.3/script-reference/unityengine/buildcompression.md) types are supported (see note).**** (\[uint]\(https\://learn.microsoft.com/dotnet/api/system.uint32)): CRC of the [AssetBundle](/engine/6000.3/script-reference/unityengine/assetbundle.md) to test against. Testing this requires additional file reading and computation. Pass in 0 to skip this check. Unity does not compute a CRC when the source and destination [BuildCompression](/engine/6000.3/script-reference/unityengine/buildcompression.md) are the same, so no CRC verification takes place (see note).**** (\[ThreadPriority]\(/engine/6000.3/script-reference/unityengine/threadpriority)): The priority at which the recompression operation should run. This sets thread priority during the operation and does not effect the order in which operations are performed. Recompression operations run on a background worker thread.

### Returns

| Type                                                                                                            | Description |
| --------------------------------------------------------------------------------------------------------------- | ----------- |
| [AssetBundleRecompressOperation](/engine/6000.3/script-reference/unityengine/assetbundlerecompressoperation.md) |             |

### Remarks

Method must be a [BuildCompression](/engine/6000.3/script-reference/unityengine/buildcompression.md) whose name ends with Runtime, for example LZ4Runtime, otherwise an ArgumentException is thrown. When the destination [BuildCompression](/engine/6000.3/script-reference/unityengine/buildcompression.md) is the same as the source, this becomes a copy operation internally, and Unity does not compute a CRC of the uncompressed data. Passing in a non-zero expectedCRC in this case raises a warning, and no CRC validation takes place.
