Làm cách nào tôi có thể định cấu hình ffmpeg để mã hóa video h.264 với giá trị log2_max_frame_num_minus4 cụ thể?


1

Tôi đang làm việc trong một dự án nơi chúng tôi đang ghép các phân đoạn video HLS. Tiêu chuẩn HLS thuận tiện bao gồm chỉ thị # EXT-X-DISCONTINUITY để báo hiệu rằng trình phát phải sẵn sàng cho video có SPS hoặc PPS khác nhau (thay đổi độ phân giải được mã hóa sẽ đảm bảo bạn cần một thứ như vậy).

Trên iPad táo, các luồng hỗn hợp chơi tốt.

Thật không may, phần thiết bị chúng tôi đang nhắm mục tiêu không thực hiện được phần này của thông số kỹ thuật HLS. Chúng tôi đã xác định rằng cả hai clip có thể phát độc lập trên thiết bị, nhưng khi chúng là một phần của cùng một luồng HLS, thiết bị gặp trục trặc (từ chối hiển thị bất kỳ clip phụ nào và tiếp tục kết xuất sau khi quay lại phương tiện từ chính kẹp).

Ngay bây giờ chúng tôi đang xem xét mã hóa lại một trong các clip để khớp với clip chúng tôi ít kiểm soát hơn. Tôi đã có thể điều chỉnh cấu hình và cấp độ bằng cách sử dụng câu trả lời trong Làm cách nào tôi có thể đặt cấp độ hồ sơ h.264 với ffmpeg?

Bây giờ tôi cần hài hòa log2_max_frame_num_minus4. Làm thế nào để tôi nói với ffmpeg sử dụng 5 cho giá trị này?

Câu trả lời:


1

Bạn không thể. Bạn sẽ phải lập trình lại x264 (bộ mã hóa H.264) để làm như vậy.

Bạn thực sự phải đi vào nguồn ( encoder/set.c) và mã hóa nó, vì tôi không tin rằng nó đã từng dành cho bất kỳ ai để đặt giá trị này.

Hoặc bạn tự sửa các byte trong SPS tương ứng với giá trị đó, có nguy cơ phá vỡ cú pháp H.264 (dĩ nhiên vì các tham số khác phụ thuộc vào giá trị đó).


Tôi không nghĩ đó là một rủi ro. Tôi nghĩ rằng việc thay đổi giá trị đó trong một mã hóa hiện có được đảm bảo khá nhiều để phá vỡ luồng (và hầu hết mọi thứ trong SPS và PPS đều như vậy).
Mutant Bob
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.