Saya mencoba untuk menambahkan logo saya selama 30 detik pertama dalam video dengan ffmpeg. Saya punya video yang disebut d1.mp4
dan logo yang disebut logo.png
.
Saat video dimulai, tanda air harus berada di sudut kiri atas atau kanan atas video dan menghilang setelah 30 detik.
Bisakah Anda menunjukkan kepada saya bagaimana cara menambahkannya?
ffmpeg -i d1.mp4 -i logo.png
ditunjukkan? Masukkan saja perintah itu dan tunjukkan kepada kami apa outputnya. Saat mengajukan pertanyaanffmpeg
, Anda harus selalu memasukkan sebanyak mungkin detail tentang materi video / audio apa yang Anda miliki, apa yang sudah Anda coba, dan output baris perintah penuh dari semua yang Anda coba.Jawaban:
Ini mengasumsikan bahwa logo adalah gambar diam tunggal dengan saluran alfa dan Anda ingin menaruhnya di atas video dengan frame rate 30000/1001 (NTSC rate). Ubah
-framerate
untuk mencocokkan video input Anda jika berbeda. Jika logo Anda adalah video, maka abaikan-framerate 30000/1001 -loop 1
. Jika logo tidak memiliki saluran alfa, tambahkan satu dengan menyisipkan misformat=yuva420p,
segera sebelumfade
.Ini akan menampilkan logo pada posisi x, y 10,10 selama 30 detik diikuti oleh fade out 1 detik.
sumber
framerate
danloop
diperlukan dalam kasus ini dan bukan untuk hamparan sederhana tanpa filter fade?-framerate
dan-loop
untuk gambar diam adalah agar fade out bekerja. Jika hanya ada satu frame maka tidak ada cara untuk menghilang selama interval 1 detik. Idealnya, frame rate harus sama dengan video sehingga fade akan semulus mungkin.Menggunakan
overlay
filter video untuk menambahkan logo ke video:Untuk memahami perintah ini, Anda perlu tahu apa itu penentu aliran dan membaca Pengantar FFmpeg Filtering akan membantu.
[0:v]
merujuk ke aliran video dari input pertama (video.mp4
), dan[1:v]
mengacu pada streaming video dari input kedua (logo.mp4
). Ini adalah bagaimana Anda dapat mengetahuioverlay
input apa yang digunakan. Anda dapat menghilangkan[0:v][1:v]
, danoverlay
masih akan bekerja, tetapi disarankan untuk eksplisit dan tidak bergantung pada kemungkinan default yang tidak diketahui.Secara default, logo akan ditempatkan di kiri atas.
Menggunakan streaming
-codec:a copy
akan menyalin audio. Ini hanya muxes audio yang bukan menyandikan ulang itu. Anggap saja sebagai "salin dan tempel" audio.Memindahkan logo
Contoh ini akan memindahkan logo 10 piksel ke kanan, dan 10 piksel ke bawah:
Contoh ini akan memindahkan logo 10 piksel dari sisi kanan dan 10 piksel ke bawah:
main_w
mengacu pada lebar input "utama" (latar belakang atau[0:v]
), danoverlay_w
mengacu pada lebar input "overlay" (logo atau[1:v]
). Jadi, dalam contoh ini, ini dapat diterjemahkan keoverlay=320-90-10:10
atauoverlay=220:10
.Mengatur waktu hamparan
Beberapa filter dapat menangani pengeditan garis waktu yang memungkinkan Anda untuk menggunakan ekspresi aritmatika untuk menentukan kapan filter harus diterapkan. Lihat untuk
ffmpeg -filters
melihat filter mana yang mendukung pengeditan waktu.Contoh ini akan menampilkan logo hingga 30 detik:
Jika Anda ingin memudar logo lihat jawaban mark4o .
sumber
enable=not(between'(t,30,50)')
. Ini akan menampilkan overlay setiap saat tetapi tidak pada durasi 30-60 detik.overlay
semua dengan sendirinya, saya lakukan, karena posisi default kiri atas adalah apa yang saya inginkan. (Jadi pada akhirnya bendera saya sederhanafilter_complex overlay
.)