Tôi đã kết thúc bằng cách sử dụng ffmpeg từ dòng lệnh để thực hiện việc cắt cần thiết.
Sau khi thực hiện một số nghiên cứu trên trang web này và thử một vài lệnh đơn giản hơn, tôi đã đưa ra lệnh sau:
ffmpeg -ss 00:01:00 -i input.mp4 -ss 00:02:00 -c copy -to 00:05:10 \
output.mp4
Theo tôi hiểu, với lệnh này, ffmpeg về cơ bản sao chép một phần của clip từ input.mp4 sang output.mp4 (không mã hóa lại). ffmpeg tìm kiếm nhanh đến mốc 1 phút (lần đầu tiên -ss 00:01:00
), sau đó bắt đầu tìm kiếm các khung chính và xuất một clip từ 3 phút vào clip (được cung cấp bởi -ss
tùy chọn thứ hai ) đến 6 phút & 10 giây vào clip (được chỉ định bởi -to 00:05:10
) . Vì vậy, điều này tạo ra một clip dài 3 phút 10 giây (5:10 - 2:00).
LƯU Ý: thời gian được cung cấp bởi -ss
tùy chọn thứ 2 và -to
tùy chọn này liên quan đến thời gian được cung cấp bởi -ss
tùy chọn đầu tiên .
Để tìm hiểu thêm về những điều này và các tùy chọn khác, hãy xem câu trả lời tuyệt vời cho câu hỏi Sử dụng ffmpeg để cắt video .
Phương pháp này nhanh đến mức đáng ngạc nhiên (10 - 15 giây) nhưng trong 2-3 giây đầu tiên của clip, âm thanh sẽ ổn nhưng không có bất kỳ video nào. Cả chất lượng âm thanh và video dường như không thể phân biệt được với bản gốc sau 2-3 giây ban đầu.
Bỏ -c copy
phần giải quyết vấn đề đó quá. Điều này không có nghĩa là video sẽ được mã hóa lại - mất nhiều thời gian hơn (MacBook Pro 13 "cuối năm 2011 của tôi chiếm 80-90% thời gian chạy của clip) - nhưng chất lượng âm thanh và video tuyệt vời và kích thước tệp nhỏ hơn bản gốc (tính theo MB / phút phát lại)!
Vì vậy, lệnh cuối cùng tôi giải quyết là:
ffmpeg -ss 00:01:00 -i input.mp4 -ss 00:02:00 -to 00:05:10 -strict -2 \
output.mp4
Phần -strict -2
đã được thêm vào lệnh dựa trên đề xuất từ ffmpeg, vì hỗ trợ cho mã hóa X.264 vẫn đang thử nghiệm,
Để sử dụng ffmpeg, tôi đã tải xuống ffmpeg được biên dịch sẵn từ ffmpegmac.net , đặt nó vào một thư mục mà tôi đã biết là đã có PATH
và sẵn sàng để đi!
-c copy
, bạn nên sử dụng các tùy chọn được đề cập ở đây: trac.ffmpeg.org/wiki/Encode/H.264 , về cơ bản-crf 23
và chọn giá trị thấp hơn để có chất lượng tốt hơn (giá trị lành mạnh giữa 18 con28).