# Transcode file video (MP4)

**Bài toán đặt ra:**

* Bạn đang có File MP4 gốc độ phân giải 4K, lưu trữ trên bất kỳ dịch vụ object storage nào tương thích với S3.

**Hiện tại, bạn cần:**

* File MP4 sau khi transcode sang các độ phân giải khác nhau, lưu trữ trên dịch vụ object storage tương thích với S3 và có thể truy cập qua vCDN của GreenNode.

**Giải pháp thực hiện:**

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-1d4d7a3329ba056254cf4ff8d14bd38018adf3cf%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

Thành phần thực hiện:

* Dữ liệu nguồn là file .mp4 cần transcode, lưu trữ trên dịch vụ bất kỳ tương thích với S3-compatible.
* Media Service là phần mềm chuyên dụng để xử lý file media để phục vụ nhu cầu VOD, Livestream. Media Service sử dụng vServer để làm compute engine và hiện tại đã có sẵn trên dịch vụ vMarketplace của vServer.
* Dữ liệu đích là file .mp4 sau khi đã transcode, lưu trữ trên disk của vServer.
* Sau khi đã có Dữ liệu đích, Quý khách có thể sử dụng để làm Origin cho hệ thống CDN.

Để thực hiện bài toán trên, hãy làm theo hướng dẫn bên dưới:

## Khởi tạo bucket trên bất kỳ dịch vụ S3-compatible để làm nơi lưu trữ dữ liệu nguồn

Đâu tiên, bạn cần khởi tạo bucket trên bất kỳ dịch vụ S3-compatible để làm nơi lưu trữ dữ liệu nguồn. Bạn có thể sử dụng AWS S3, Google Storage,... hoặc bạn cũng có thể chọn sử dụng vStorage do GreenNode phát triển làm nơi lưu trữ dữ liệu nguồn. Chi tiết các bước khởi tạo bucket trên vStorage, vui lòng tham khảo thêm tại [đây](https://docs.vngcloud.vn/vng-cloud-document/vn/vstorage/object-storage/vstorage-hcm03/cac-tinh-nang-cua-vstorage/lam-viec-voi-container/khoi-tao-container). Sau khi bucket đã khởi tạo xong, bạn hãy thực hiện:

* Thiết lập quyền truy cập public từ internet đến các object theo hướng dẫn tại [đây](https://docs.vngcloud.vn/vng-cloud-document/vn/vstorage/object-storage/vstorage-hcm03/cac-tinh-nang-cua-vstorage/lam-viec-voi-container/chuyen-che-do-cong-khai-container).
* Upload một file .MP4 để làm sample cho transcoding
* Thực hiện tạo S3 Key cho project theo hướng dẫn tại [đây](https://docs.vngcloud.vn/vng-cloud-document/vn/vstorage/object-storage/vstorage-hcm03/quan-ly-truy-cap/quan-ly-tai-khoan-truy-cap-vstorage/tai-khoan-service-account/khoi-tao-vstorage-credentials/khoi-tao-s3-key).

## Cài đặt Sigma Media Server

Đầu tiên, bạn cần cài đặt Sigma Media Server theo các bước tại [đây](https://docs.vngcloud.vn/vng-cloud-document/vn/vcdn/loai-hinh-dich-vu/transcoding/cai-dat-sigma-media-server).

## Khởi tạo và cấu hình dịch vụ Media Service để livestream.

**Bước 1:** Sau khi đã cài đặt Sigma Media Server thành công, bạn hãy truy cập vào <https://portal.sigma.video/apps> với email mà bạn đã đăng ký sử dụng dịch vụ trước đó.

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2FVJd3YOTI1IjxOeJTOL3r%2Fimage.png?alt=media&#x26;token=6e752a0c-5155-41b2-9da6-f7482c5e27aa" alt=""><figcaption></figcaption></figure>

**Bước 2:** Bạn chọn xổ menu **Product** xuống và chọn mục **Media VOD**

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-c78d44f11201dfd7e8b2b4b404145a17651a6e1f%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

**Bước 3:** Tiếp tục bạn chọn tab **VOD**

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-7bb24c1a8c9cde662228170e73500fef6fd78864%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

**Bước 4:** Chọn nút **Add** ở góc phải để tạo job transcoding

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-a308a8f91badc9490cb4d2241de8c1881d62cb71%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

**Bước 5:** Chọn một **server** để thực thi job transcoding, mặc định Sigma Media Server mà bạn đã khởi tạo trước đó trên **vMarketPlace** sẽ được chọn.

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-786f464474c43dd2685f4bee30402991204b875f%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

**Bước 6:** Chọn loại file nguồn cần transcode. Bạn cần nhập vào link [URL](https://han01.vstorage.vngcloud.vn/v1/AUTH_210ff69ad18d4bfa9920b165ef8ddef4/con_01/big_buck_bunny_720p_30mb.mp4) của file nguồn đã được upload lên dịch vụ S3. Ví dụ với vStorage, URL của object sẽ có định dạng tương tự: [https://hcm03.vstorage.vngcloud.vn/v1/AUTH\_123456/cont\_01/pexels\_videos\_1390942%20(2160p).mp4](https://hcm03.vstorage.vngcloud.vn/v1/AUTH_bcd882dd104f40cb8e20f1cd6bb0b4c6/cont_01/pexels_videos_1390942%20\(2160p\).mp4)**Chú ý: bạn cần thực hiện chuyển chế độ công khai (Make Public) cho container/ bucket trên vStorage hoặc Bất kỳ dịch vụ S3 để Sigma có thể truy cập vào link này.**

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2FLHrxIlXg4xJg1QIAvTUU%2Fimage.png?alt=media&#x26;token=a178a111-53b6-4a75-8eb7-ebf047b3263f" alt=""><figcaption></figcaption></figure>

**Bước 7:** Tại mục **Destination**, chọn kiểu output **Third-party Storage** -> **Generic S3** để lưu file kết quả

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-97397ab51867b6a4904f03de66c9ed5839dde86d%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

**Bước 8**: Cấu hình thông tin S3 của bạn

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-85ab11e1e5881c4cf3678b8903f10a97b19cd6da%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

**Bước 9:** Config các **profile** của đầu vào

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-8f8247a2bd60cd6db6c8fd4dff64294f798d9132%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

**Bước 10:** Config các **profile** đầu ra

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-af185768087475515edfba2ee02055ed0d5ad458%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

**Bước 11:** Trong kịch bản này chúng ta sẽ Chọn **HLS**

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-f8bc7c7b35955220ee4526963c6bfc28b609c700%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

**Bước 12:** Config các tham số **HLS**

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-cbd32873f258cad69b040afee993f3effa5d278b%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

**Bước 13:** Bấm **Create Job** để bắt đầu transcode

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-c777be17b9ed7c920acbfee16cde36ab0b5472cf%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

**Bước 14**: Trở về tab VOD chúng ta sẽ thấy % xử lý, hoặc thông báo lỗi nếu có của các job đã tạo.

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-c7c9e9d47b26da145ec9b209d81a9b7ba2fbc8eb%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

## Khởi tạo và cấu hình dịch vụ vCDN.

**Bước 1:** Bạn thực hiện truy cập [GreenNode – ](https://vcdn.vngcloud.vn/)[vCDN](https://vcdn.vngcloud.vn/)[ Portal](https://vcdn.vngcloud.vn/)

**Bước 2:** Khởi tạo một domain CDN dành cho VOD theo hướng dẫn tại [đây](https://docs.vngcloud.vn/vng-cloud-document/vn/vcdn/loai-hinh-dich-vu/video-on-demand-streaming).

**Bước 3:** Chọn **Origin** của **CDN** là **S3**

<figure><img src="https://3672463924-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FB0NrrrdJdpYOYzRkbWp5%2Fuploads%2Fgit-blob-58e8d3a756dc8e19519868fdf37b21ac679670ac%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

Sau khi quá trình transcode thành công, Quý khách có thể truy cập đến video kết quả bằng link CDN sau: <mark style="color:blue;">**https\://\<CDN Domain>/sigma-vod/\<transcode\_job\_id>/master.m3u8**</mark>
