Làm cách nào để chuyển đổi video với ffmpeg sang định dạng DNxHD / DNxHR?


12

Tôi đang làm theo hướng dẫn về cách làm việc với cinelerra-cv, ngay từ đầu người ta đã nói, bước đầu tiên khi làm việc với cinelerra, là chuyển đổi bất kỳ video clip nào có thành định dạng dnxhd. Nó chỉ nói, không giải thích làm thế nào để làm điều đó.

Sau một số nghiên cứu, tôi đã tìm thấy ffmpeg, nhưng tôi không biết làm thế nào để sử dụng nó liên quan đến dnxhd, với những kiến ​​thức nhỏ mà tôi thu thập được về ffmpeg, tôi đoán làm thế nào để làm điều đó:

ffmpeg -i <video-clip> -vcodec dnxhd <video-clip-in-dnxhd>

tuy nhiên, điều này không hoạt động và các ví dụ tôi đã thấy khi chuyển đổi thành dnxhd với ffmpeg tôi không hiểu, dường như mỗi lần họ có một số thẻ khác nhau mà không giải thích lý do sử dụng chúng.


1
deb-indus.org/tuto/ffmpeg-howto.htmlm#Encoding_VC-3 sẽ đề xuấtffmpeg -i <input_file> -vcodec dnxhd -b <bitrate> -an output.mov
Rinzwind

cảm ơn, tôi đã thấy cái này trước đây và tôi giống như: Tôi có phải chỉ định bitrate không và nó có phải không có âm thanh (-an) không? .... ý tôi là người ta chỉ có thể làm việc trong cinelerra với các videoclips dnxhd không có âm thanh?
cá mập

1
-b <int> : Set video bitrate in bit/s ( default = 200k ).vì vậy tôi cho rằng bạn phải thêm bitrate vì 200k không phải là một tùy chọn hợp lệ. Nhưng -antôi sẽ giảm :)
Rinzwind

bitrate có phụ thuộc vào tệp nguồn hoặc tệp mà người ta muốn chuyển đổi không? .... ý tôi là nếu tôi thử dùng 200 thì nó có hoạt động không?
cá mập

Không. Bạn cần chỉ định bitrate cho bộ mã hóa cụ thể này.
llogan

Câu trả lời:


18

Đây là một bộ mã hóa kén chọn, do đó bạn phải chọn các tham số thích hợp bao gồm:

  • tỷ lệ khung hình
  • định dạng pixel / không gian màu
  • chiều rộng x chiều cao / độ phân giải / kích thước khung hình
  • bitrate

Xem các tham số DNxHD hợp lệ bên dưới để biết các giá trị được chấp nhận.


Ví dụ về DNxHD

Ví dụ này sẽ chia tỷ lệ thành 1280x720, chọn tốc độ khung hình 30000/1001 (còn gọi là "29.97") và định dạng pixel của YUV 4: 2: 2 phẳng.

ffmpeg -i input -c:v dnxhd -vf "scale=1280:720,fps=30000/1001,format=yuv422p" -b:v 110M -c:a pcm_s16le output.mov
  • Nếu tệp đầu vào của bạn đã tuân thủ một số tham số được chấp nhận thì bạn không phải khai báo chúng theo cách thủ công.

  • Container định dạng đầu ra cho DNxHD thường là MXF hoặc MOV.


Ví dụ về DNxHR

DNxHR dành cho độ phân giải lớn hơn 1080p như 2K, 4K và 8K.

Nếu bạn muốn DNxHR thì thêm -profile:vtùy chọn đầu ra, chẳng hạn như -profile:v dnxhr_hq.

Giá trị được chấp nhận là: dnxhd, dnxhr_444, dnxhr_hqx, dnxhr_hq, dnxhr_sq, dnxhr_lb.

  • DNxHR LB: dnxhr_lb- Băng thông thấp. 8-bit 4: 2: 2 ( yuv422p). Chất lượng ngoại tuyến.
  • DNxHR SQ: dnxhr_sq- Chất lượng tiêu chuẩn. 8-bit 4: 2: 2 ( yuv422p). Thích hợp cho định dạng giao hàng.
  • DNxHR HQ: dnxhr_hq- Chất lượng cao. 8-bit 4: 2: 2 ( yuv422p).
  • DNxHR HQX: dnxhr_hqx- Chất lượng cao. 10-bit 4: 2: 2 ( yuv422p10le). Phân phối chất lượng phát sóng UHD / 4K.
  • DNxHR 444: dnxhr_444- Chất lượng hoàn thiện. 10-bit 4: 4: 4 ( yuv444p10le). Điện ảnh giao hàng chất lượng.

Danh sách trên được điều chỉnh từ codec DNxHR .


Thông số DNxHD hợp lệ

ffmpeg sẽ thất bại nếu bạn cung cấp các giá trị không chính xác, nhưng nó có thể cung cấp một danh sách những gì được chấp nhận.

Bạn có thể hiển thị danh sách bằng lệnh "giả" sau đây:

ffmpeg -f lavfi -i testsrc2 -c:v dnxhd -f null -

Những lưu ý quan trọng về tốc độ khung hình

  • Tốc độ khung hình bị thiếu trong danh sách được tạo từ lệnh này. ffmpegsẽ mù quáng chấp nhận bất kỳ tốc độ khung hình nào cho bộ mã hóa này và phần mềm Avid sẽ chấp nhận nó (chưa được xác nhận), nhưng bitrate DNxHD chỉ được coi là phù hợp với tốc độ khung hình cụ thể. Để tương thích tối đa, tôi khuyên bạn chỉ nên sử dụng kết hợp tốc độ bit / khung hình phù hợp. Vì vậy, hãy sử dụng lệnh ở trên để có được các định dạng bitrate và pixel phù hợp được chấp nhận ffmpegvà tham chiếu chéo với Danh sách độ phân giải DNxHD của Avid hoặc Sách trắng DNxHD (trang 9) để có tốc độ khung hình phù hợp.

  • Tốc độ khung hình được liệt kê trong các liên kết ở trên đang sử dụng các xấp xỉ làm tròn không chính xác. Các giá trị thích hợp được liệt kê dưới đây; tên viết tắt là bên trái và giá trị thích hợp là bên phải.

    • 29.97 = 30000/1001 (hoặc sử dụng bí danh ntsc)
    • 59,94 = 60000/1001
    • 23.967 = 24000/1001 (hoặc sử dụng bí danh ntsc-film)

Lựa chọn khác

Để biết các tùy chọn cụ thể của bộ mã hóa bổ sung và danh sách các định dạng pixel được hỗ trợ, hãy tham khảo:

ffmpeg -h encoder=dnxhd

Lỗi

ff_frame_thread_encoder_init failed
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!

Điều này có nghĩa là tốc độ khung hình, chiều rộng, chiều cao, định dạng pixel và / hoặc bitrate của bạn không chính xác. Tham khảo các tham số DNxHD hợp lệ ở trên để biết các giá trị được chấp nhận.

pixel format is incompatible with DNxHD profile

Chọn một định dạng pixel thích hợp bằng cách sử dụng bộ lọc định dạng . Xem ví dụ về DNxHD ở trên.

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.