top of page
James Lee

Triển khai các workflow trên OneDRM với FFmpeg

Đã cập nhật: 4 thg 10, 2023

Khi các doanh nghiệp cần tư vấn về tích hợp DRM, thông thường họ đã có sẵn workflow video chứa các nội dung đã được mã hóa và đóng gói.


Đa số các doanh nghiệp thường sử dụng 1 vendor thứ 3 đã được tích hợp với OneDRM như Wowza, AWS Media Services, Harmonic, Telestream,... Tuy nhiên, gần đây, chúng tôi thấy khá nhiều doanh nghiệp sử dụng FFmpeg để sản xuất cả nội dung VOD và Live.

Thông thường, doanh nghiệp đều muốn sử dụng các đối tác của chúng tôi đã tích hợp sẵn để tiết kiệm thời gian và công sức. nhưng nếu sử dụng FFmpeg, doanh nghiệp phải thực hiện một số thay đổi để có thể triển khai DRM thành công.


Liệu có cần đến FFmpeg ?

FFmpeg là một trong những công cụ mạnh mẽ nhất hiện nay khi xử lý/mã hóa/đóng gói các nội dung A/V.

Mặc dù có nhiều khả năng nhưng với DRM trong hình dưới đây, nó có một vài điểm chưa được đạt như mong muốn. Ví dụ: FFmpeg cho phép mã hóa AES-128 bằng HLS với tín hiệu sau trong bảng kê khai của bạn:

Tuy nhiên, tín hiệu này là Clear Key đơn giản, không cung cấp thông số mã hóa đủ mạnh được thực hiện bằng DRM dành cho người tiêu dùng và được uỷ quyền bởi các studio.

Mặc dù thực tế là đầu ra DRM chưa có sẵn với FFmpeg nhưng nó vẫn có thể được triển khai trong workflow của bạn miễn là nó được sử dụng cùng với các dịch vụ và công cụ khác cho phép bạn đóng gói các file bằng DRM.


Phát triển FFmpeg bằng các công cụ và dịch vụ khác

Nếu bạn muốn sử dụng FFmpeg ngay hôm nay cho hệ thống của mình, thì vấn đề chủ yếu nằm ở khâu chuẩn bị nội dung (mã hóa), và đừng kỳ vọng quá vào khả năng của nó, các dịch vụ và công cụ khác sẽ đảm nhận việc đóng gói và ứng dụng DRM.

Tôi sẽ lấy một vài ví dụ để cung cấp cho bạn cái nhìn tổng thể về cách sử dụng FFmpeg với các công cụ và dịch vụ của bên thứ 3. Mặc dù chưa phải là hướng dẫn quá chi tiết nhưng tôi hy vọng sẽ cho bạn thêm ý tưởng về cách phát triển FFmpeg, giúp bạn cải thiện chiến lược của bạn.


Tôi sẽ không đề cập đến tất cả các giải pháp, nhưng ý tưởng vẫn giữ nguyên: ffmpeg encodes/streams, công cụ của bên thứ 3 hoàn thành công việc bằng cách đóng gói thành định dạng mong muốn của bạn (DASH/HLS/CMAF) đồng thời áp dụng DRM.


Sử dụng FFmpeg với Công cụ phát trực tuyến Wowza

Nếu bạn đã có FFmpeg trong hệ thống của mình và muốn tiếp tục giữ nó, bạn có thể dễ dàng sử dụng nó với Wowza Streaming Engine để live streaming.


Wowza có một bài viết khá chi tiết hướng dẫn tại - https://www.wowza.com/docs/how-to-live-stream-using-ffmpeg-with-wowza-streaming-engine .

Tất cả những gì bạn cần làm là thiết lập listening endpoint trong Wowza Streaming Engine và sử dụng FFmpeg để stream tới nó, ví dụ:


Trong Ứng dụng Wowza (app name), bạn nên kích hoạt Mô-đun KeyOS MultiPack Wowza để bật DRM trên output của mình và bạn có thể làm tiếp.


Sử dụng FFmpeg với AWS Media Services

FFmpeg cũng có thể được sử dụng với AWS Media Services. Ví dụ: bạn có thể đọc một bài viết hay tại đây - https://aws.amazon.com/blogs/media/connecting-ffmpeg-USE-rtmp-to-aws-media-services-in-the-cloud/ về cách thực hiện điều này có thể được thực hiện

Tất cả những gì bạn cần làm là

  • Chuẩn bị nguồn của bạn từ nơi bạn sẽ streaming. Đó có thể là máy ảnh, file local hoặc một số luồng khác mà bạn sẽ stream lại

  • Thiết lập AWS MediaLive với inputs, security groups and channel

  • Thiết lập AWS MediaPackage với các channel

  • Kích hoạt tích hợp DRM thông qua SPEKE với DRM trong các channel AWS MediaPackage của bạn

Và bạn đã sẵn sàng bắt đầu streaming nội dung của mình bằng FFmpeg:


Output từ dịch vụ AWS MediaPackage sẽ được đóng gói theo cách bạn thiết lập điểm cuối khi áp dụng DRM.

Đây chỉ là một vài trong số rất nhiều ví dụ về cách triển khai FFmpeg khi sử dụng DRM để phát trực tiếp. Tôi cũng đã đưa vào một số ví dụ bên dưới về cách triển khai DRM bằng FFmpeg cho VOD.


Sử dụng FFmpeg với Bento4

Nếu bạn không có yêu cầu về Live và chỉ cần DRM cho VOD thì có khá nhiều lựa chọn. Bạn có thể mã hóa nội dung của mình bằng ffmpeg, sau đó sử dụng Bento4 để áp dụng DRM cho nội dung đó và đóng gói nội dung đó theo định dạng mong muốn (HLS/DASH/CMAF).

Ví dụ: nếu bạn có một nội dung, bạn có thể muốn mã hóa lại nó với độ phân giải khác:




Kết quả là bạn sẽ có các file sau:

  • 1440p_g120_r60_aac.mp4

  • 1080p_g120_r60_aac.mp4

  • 720p_g120_r60_aac.mp4

  • 480p_g120_r60_aac.mp4

Bước tiếp theo sẽ là tải xuống Bento4 và sử dụng tool phân mảnh của nó để tạo các phiên bản phân mảnh của các file đó.

Sau này, bạn sẽ sử dụng các phiên bản phân mảnh khi tạo nội dung HLS/DASH/CMAF của mình. Bạn cần thực hiện bước này vì Bento4 không hoạt động với mp4 không phân mảnh như Shaka Packager chẳng hạn.

Bước cuối cùng là lấy khóa từ API KeyOS CPIX và áp dụng chúng cho đầu ra của bạn. Ví dụ: đây là cách bạn tạo nội dung DASH khi áp dụng PlayReady và Widevine (các khóa và tiêu đề bị cắt ngắn):


Hoặc HLS với FairPlay:


Sử dụng FFmpeg với Shaka Packager

Hầu như khá giống nhau khi bạn sử dụng Shaka Packager cùng với FFmpeg. FFmpeg chuẩn bị nội dung của bạn và Shaka Packager sẽ mã hóa và đóng gói nội dung của bạn sang định dạng mong muốn. Điểm khác biệt so với Bento4 là bạn không cần thực hiện thêm việc phân mảnh mp4 trước khi sử dụng chúng trong Shaka Packager.

Ví dụ: đây là cách bạn tạo nội dung DASH bằng PlayReady và Widevine bằng cách sử dụng nội dung được mã hóa FFmpeg sau khi nhận được các khóa và hộp PSSH cần thiết từ API KeyOS CPIX:


Hoặc HLS có áp dụng FairPlay:

Vì vậy, như bạn thấy, FFmpeg là một công cụ tuyệt vời cho các luồng công việc video được truyền phát rõ ràng, nhưng do những hạn chế của nó khi thêm DRM nên nó phải được sử dụng cùng với các công cụ và dịch vụ khác của bên thứ 3.


Với đội ngũ kỹ thuật của ETRUE trong nhiều năm nghiên cứu và triển khai giải pháp DRM trong và ngoài nước, chúng tôi tự tin tư vấn cho bạn một kế hoạch triển khai và sử dụng DRM một cách chuyên nghiệp và nhanh nhất.

Vui lòng liên hệ để được hỗ trợ.


21 lượt xem0 bình luận

Bài đăng gần đây

Xem tất cả

留言


bottom of page