FFMPEG - Chuyển đổi video thành timelapse


15

Tôi đang sử dụng ffmpeg trong trình tạo flash (Tập lệnh hành động 3) để chuyển đổi video thành một khoảng thời gian của video. Tôi đã tìm ra cách sử dụng setpts để làm điều này, nhưng tệp đầu ra kết quả có cùng độ dài với đầu vào (chỉ với khung cuối cùng được hiển thị sau khi hết thời gian), tôi muốn thay đổi thời lượng dựa trên các cài đặt được thông qua để ffmpeg.

Tôi đang thử bên dưới thông qua dòng lệnh trước:

ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" output.mp4

Mọi sự trợ giúp sẽ rất được trân trọng!

Câu trả lời:


18

Vấn đề được giải quyết. Tôi đã không xóa âm thanh, vì vậy có lẽ nó đang phát tệp âm thanh gần như trống rỗng trong toàn bộ thời gian của video.

ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" -an output.mp4

-an loại bỏ âm thanh từ video.


1

Một số chi tiết ở đây về việc tăng tốc âm thanh. Bạn có thể làm tới 2 lần, nhưng bạn có thể lừa nó để tăng tốc hơn nữa ( nguồn ):

Tăng tốc / làm chậm âm thanh

Bạn có thể tăng tốc hoặc làm chậm âm thanh với bộ lọc âm thanh atempo. Để tăng gấp đôi tốc độ của âm thanh:

ffmpeg -i input.mkv -filter:a "atempo=2.0" -vn output.mkv

Bộ lọc atempo bị giới hạn trong việc sử dụng các giá trị trong khoảng 0,5 đến 2,0 (vì vậy nó có thể làm chậm nó xuống không dưới một nửa tốc độ ban đầu và tăng tốc độ không quá gấp đôi đầu vào). Nếu bạn cần, bạn có thể khắc phục giới hạn này bằng cách xâu chuỗi nhiều bộ lọc atempo lại với nhau. Sau đây với tốc độ âm thanh tăng gấp bốn lần:

ffmpeg -i input.mkv -filter:a "atempo=2.0,atempo=2.0" -vn output.mkv

Sử dụng một bộ lọc phức tạp, bạn có thể tăng tốc video và âm thanh cùng một lúc:

ffmpeg -i input.mkv -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mkv

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.