Cách chuyển đổi phim 3D thành 2D bằng ffmpeg


Câu trả lời:


9

Mặc dù bạn có thể đạt được điều này bằng cách sử dụng thủ công bộ lọc crop của ffmpeg, bộ lọc stereo3d được thiết kế riêng cho mục đích này. Bạn đã không chỉ định định dạng 3d chính xác mà bạn có. Có một số khả năng như được ghi lại ở liên kết stereo3d ở trên. Giả sử đó input.mkvlà sbsl tương đối phổ biến (mắt trái bên trái),

ffmpeg -i input.mkv -vf stereo3d=sbsl:ml -metadata:s:v:0 stereo_mode="mono" output.mkv

sẽ dẫn đến kết quả 2d (chỉ mắt trái) output.mkv. Tôi tin rằng lý do -metadata:s:v:0 stereo_mode="mono"được yêu cầu để xóa thẻ âm thanh nổi là vì siêu dữ liệu không được dẫn qua hệ thống bộ lọc và ffmpeg nếu không thì cố gắng sao chép siêu dữ liệu của bản gốc. Nếu bạn không làm điều này, một số người chơi có thể nghĩ rằng kết quả 2ngày của bạn vẫn là 3d và làm những điều kỳ lạ.

Nếu bạn thấy rằng kết quả có tỷ lệ khung hình sai, bạn có thể thử nghiệm sử dụng stereo3d=sbsl2:mlthay vì xử lý đầu vào là một nửa chiều rộng cạnh nhau. Nếu vẫn thất bại, bạn có thể đặt khía cạnh chính xác với -aspect 16:9(hoặc bất cứ điều gì bạn biết tỷ lệ khung hình chính xác là).


1
Bạn có thể giải thích tùy chọn bộ lọc stereo3d bạn đang sử dụng ở đây không? Tôi hiểu từ tài liệu ffmpeg rằng sbsl có nghĩa là song song cạnh nhau (mắt trái trái, mắt phải phải) nhưng: ml nghĩa là gì? Tôi dường như không thể xác định được thông tin đó.
Anh Cả Geek

Cú pháp là stereo3d=<input-format>:<output-format>. Theo tài liệu được liên kết, mlcó nghĩa là xuất ra "đầu ra đơn sắc (chỉ mắt trái)".
kevmitch

Tôi đã gặp lỗi khi sử dụng -metadata:s:v:0 stereo_mode="mono"với ffmpeg 2.8.14. Có vẻ như tài liệu có thể đã thay đổi kể từ khi bạn viết câu trả lời này. Chỉ cần loại bỏ các công tắc nói trên cho phép ffmpeg tiếp tục mà không gặp lỗi. Lưu ý rằng bạn có thể tránh mã hóa lại luồng âm thanh bằng cách sử dụng công -c:a copytắc.
Anh Cả Geek

1

Tôi tìm thấy một tài liệu tham khảo trên diễn đàn này. http://www.ffmpeg-archive.org/How-to-re-encode-3d-video-to-2d-video-td4676271.html

ffmpeg -i './a3dmovie.mp4'  -vf "crop=w=iw/2:h=ih:x=0:y=0,scale=w=2*iw:h=ih,setdar=2" -y ./a2dmovie.mp4

Phần quan trọng là -vf "crop=w=iw/2:h=ih:x=0:y=0,scale=w=2*iw:h=ih,setdar=2"

Về cơ bản, nó giảm một nửa sản lượng và bán lại khi thích hợp cho video 3d.

Tôi thấy điều này cũng hữu ích để kiểm tra và kiểm tra đầu ra

ffplay -i ./some3dmovie.mp4  -vf "crop=w=iw/2:h=ih:x=0:y=0,scale=w=2*iw:h=ih,setdar=2" 

Bạn có thể di chuyển chỉ mục ra phía trước tập tin như sau -movflags faststart

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.