FFMPEG có thể thay đổi quy mô theo thời gian không?


11

Ok, do đó, bằng cách sử dụng bộ lọc lớp phủ, người ta có thể thay đổi vị trí x / y của video theo thời gian bằng cách sử dụng biến "t". Ví dụ: overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0có thể được sử dụng để bắt đầu trượt một phần tử được phủ từ trên cùng bên trái sang trên cùng bên phải, sau khi 2 giây trôi qua.

Những gì tôi muốn làm là sử dụng một nguyên tắc tương tự cho các yếu tố tỷ lệ. Tôi muốn có thể thay đổi quy mô của video theo thời gian bằng cách sử dụng một biểu thức (như scale=w=iw*t, hoặc một cái gì đó dọc theo dòng đó).

Điều này có thể không?

Khi tôi chạy biểu thức đó qua -filter_complex, tôi nhận được

Lỗi khi đánh giá biểu thức 'iw * t'.

Có thể biểu thức cho out_w: 'iw * t' hoặc cho out_h: '- 1' là tự tham chiếu.

Tôi cảm thấy như có một cơ hội công bằng Tôi sẽ cần phải vá FFMpeg nếu tôi muốn có được chức năng này, nhưng tôi nghĩ tôi sẽ hỏi trước, để xem có ai biết về loại điều này không!

Có ai biết làm thế nào một nhiệm vụ như vậy có thể được thực hiện?

Cảm ơn đã giúp đỡ!


Nghe có vẻ giống như một lỗi cú pháp ngay bây giờ nhưng tôi chưa sử dụng tính năng đó trước đây nên rất tiếc tôi không thể thực sự giúp đỡ ở đây.
PTS

1
t không phải là một điều xác định khi nói đến bộ lọc lớp phủ.
v010dya

1
Bạn chỉ có thể viết một bộ lọc. wiki.multidia.cx/index.php?title=FFmpeg_filter_howto
denjello

1
@alexspeller bộ lọc tỷ lệ không hỗ trợ chỉnh sửa dòng thời gian, do đó không thể trực tiếp. Tôi sẽ kiểm tra nếu có một cách giải quyết.
Gyan

1
Về mặt kỹ thuật có thể với đầu ra H.264 / 5. Không biết người chơi / biên tập viên sẽ xử lý nó như thế nào.
Gyan

Câu trả lời:


2

Từ những gì tôi hiểu 't' được đánh giá một lần. Bạn đã đọc cái này chưa: https://ffmpeg.org/ffmpeg-filters.html#zoompan ?

Tài liệu Ffmpeg:

Ví dụ 9.170.1

  • Phóng to lên tới 1,5 và xoay cùng lúc đến một điểm gần trung tâm ảnh:

zoompan = z = 'min (zoom + 0,0015,1,5)': d = 700: x = 'if (gte (zoom, 1.5), x, x + 1 / a)': y = 'if (gte (zoom, 1,5), y, y + 1) ': s = 640x360

  • Phóng to lên tới 1,5 và xoay luôn ở giữa ảnh:

zoompan = z = 'min (zoom + 0,0015,1,5)': d = 700: x = 'iw / 2- (iw / zoom / 2)': y = 'ih / 2- (ih / zoom / 2)'

  • Tương tự như trên nhưng không dừng lại:

zoompan = z = 'min (max (zoom, pzoom) +0.0015,1.5)': d = 1: x = 'iw / 2- (iw / zoom / 2)': y = 'ih / 2- (ih / thu phóng / 2) '

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.