การอ้างอิงโซ่ Ffmpeg ไปยังส่วนอื่น ๆ ของคำสั่งสำหรับขนาดลายน้ำแบบไดนามิก


1

ฉันอ่านเอกสาร ffmpeg มาระยะหนึ่งแล้ว แต่ฉันไม่สามารถปิดใจเกี่ยวกับการทำงานของตัวกรองการตั้งชื่อและการอ้างอิงย้อนกลับได้ หรือว่าสิ่งที่ฉันต้องการเป็นไปได้

ฉันพยายามแปลงลายน้ำเป็นแหล่งส่งออก แต่สิ่งที่ฉันไม่สามารถหาได้คือวิธีการใช้มิติจากส่วนหนึ่งในการคำนวณอีกส่วนหนึ่ง

ตัวอย่างเช่นการเข้ารหัสลายน้ำคงที่บนวิดีโอ:

ffmpeg -y -threads 8 -i bunny-source.mp4 \
-i wm.png -filter_complex \
"[1:v]scale=100:-1[watermark]; [0:v][watermark]overlay=10:main_h-overlay_h-10[outv]" \
-map "[outv]" -map 0:a  marked.mp4 

สิ่งนี้จะสร้างลายน้ำที่ 100px ที่ด้านล่างของเอาต์พุต ฉันเข้าใจว่ามีการตั้งชื่อผลลัพธ์ของตัวกรองที่ซับซ้อนใน [จบวงเล็บ] ฉันพบว่าพารามิเตอร์แรกใน [a: b] คือดัชนีตัวเลขของอินพุต (-i) แต่: v หมายถึงอะไร แล้วฉันจะเปลี่ยนคำสั่งอย่างไรแทนที่จะเป็น 100 ฉันจะได้ 30% ของความกว้างของแหล่งสัญญาณ เป็นไปได้ไหม

คำตอบ:


1

แต่:vหมายความว่าอย่างไร

นี่คือการระบุกระแส ตัวอย่างเช่น1:vอ้างถึงsecond input:all video streams(โปรดทราบว่าffmpegเริ่มนับจาก 0)

สิ่งนี้สามารถปรับปรุงได้มากขึ้น หมายถึง1:v:2 second input:video stream type:third video streamดังนั้นจะเลือกสตรีมวิดีโอที่สามจากอินพุตที่สอง

ฉันจะเปลี่ยนคำสั่งอย่างไรแทนที่จะเป็นความกว้าง 100 พิกเซลฉันจะได้ 30% ของความกว้างของแหล่งสัญญาณ

ในตัวกรองขนาดค่าของwและhตัวเลือกคือนิพจน์ที่สามารถอ้างอิงความกว้างอินพุต ( iw) และความสูง ( ih) ดังนั้นคำสั่งของคุณจะมีลักษณะดังนี้:

ffmpeg -y -i bunny-source.mp4 -i wm.png -filter_complex \
"[1:v]scale=iw*0.3:-1[watermark]; \
 [0:v][watermark]overlay=10:main_h-overlay_h-10[outv]" \
-map "[outv]" -map 0:a  marked.mp4

ซึ่งจะขยายwm.pngเป็น 30% ของความกว้างและยังสูงเนื่องจากคุณใช้-1ซึ่งจะเลือกค่าที่ถูกต้องโดยอัตโนมัติตามค่าที่กำหนดในขณะที่รักษาอัตราส่วนกว้างยาว

ดูเอกสารประกอบการกรองวิดีโอขนาด FFmpegสำหรับข้อมูลเพิ่มเติม


2
สวัสดีท่านลอร์ดขอบคุณสำหรับการตอบกลับของคุณ แต่ฉันได้ซ่อมแซมด้วยค่าโทเค็นที่แตกต่างกัน แต่การอ้างอิงถึงความกว้างของอินพุตดูเหมือนจะอ้างอิงความกว้างของลายน้ำไม่ใช่ความกว้างของอินพุตของสตรีมวิดีโอแรก ดังนั้น iw * 0.3 => 30% ของอิมเมจ png
jpluijmers
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.