Tôi không bao giờ có thể làm cho giải pháp của ptQa hoạt động, chủ yếu là vì tôi không bao giờ có thể tìm ra lỗi từ các bộ lọc có nghĩa là gì hoặc cách khắc phục chúng. Giải pháp của tôi có vẻ hơi vụng về vì nó có thể để lại một mớ hỗn độn, nhưng nếu bạn ném nó vào một kịch bản, việc dọn dẹp có thể được tự động hóa. Tôi cũng thích cách tiếp cận này vì nếu có gì đó không ổn ở bước 4, bạn kết thúc với các bước hoàn thành 1-3 để phục hồi từ các lỗi hiệu quả hơn một chút.
Chiến lược cơ bản là sử dụng -tvà -ssđể có được video của từng phân khúc bạn muốn, sau đó kết hợp tất cả các phần cho phiên bản cuối cùng của bạn.
Giả sử bạn có 6 đoạn ABCDEF mỗi đoạn dài 5 giây và bạn muốn A (0-5 giây), C (10-15 giây) và E (20-25 giây) bạn sẽ làm điều này:
ffmpeg -i abcdef.tvshow -t 5 a.tvshow -ss 10 -t 5 c.tvshow -ss 20 -t 5 e.tvshow
hoặc là
ffmpeg -i abcdef.tvshow -t 0:00:05 a.tvshow -ss 0:00:10 -t 0:00:05 c.tvshow -ss 0:00:20 -t 0:00:05 e.tvshow
Điều đó sẽ làm cho các tệp a.tvshow, c.tvshow và e.tvshow. Đoạn phim -tcho biết mỗi clip dài bao nhiêu, vì vậy nếu c dài 30 giây, bạn có thể vượt qua trong 30 hoặc 0:00:30. Các -sstùy chọn nói bao xa để bỏ vào nguồn video, vì vậy nó luôn luôn liên quan đến sự bắt đầu của tập tin.
Sau đó, khi bạn có một loạt các tệp video, tôi tạo một tệp ace-files.txtnhư thế này:
file 'a.tvshow'
file 'c.tvshow'
file 'e.tvshow'
Lưu ý "tập tin" ở đầu và tên tập tin đã thoát sau đó.
Sau đó, lệnh:
ffmpeg -f concat -i ace-files.txt -c copy ace.tvshow
Điều đó kết hợp tất cả các tệp abe-files.txtlại với nhau, sao chép codec âm thanh và video của chúng và tạo một tệp ace.tvshowchỉ là phần a, c và e. Sau đó chỉ cần nhớ để xóa ace-files.txt, a.tvshow, c.tvshowvà e.tvshow.
Tuyên bố miễn trừ trách nhiệm : Tôi không biết làm thế nào (trong) hiệu quả này được so sánh với các phương pháp khác về mặt ffmpegnhưng đối với mục đích của tôi, nó hoạt động tốt hơn. Hy vọng nó sẽ giúp được ai đó.