FFMPEG: ไม่เพิ่มลายน้ำในวิดีโอ


2

ฉันติดตามอย่างขยันขันแข็ง

FFMPEG: วิธีเพิ่มลายน้ำให้วิดีโอ? ลายน้ำ FFmpeg

แต่ภายใต้ linux (ubuntu 13.04 64 บิต) คำสั่งไปยังWATERMARK

  • สตรีมไฟล์วิดีโอ
  • ลายน้ำ png

ดูเหมือนว่าไม่ไปทำงานอีกต่อไป

ยิ่งแปลกยิ่งกว่าข้อผิดพลาดที่รายงานจากffmpegและavconvนั้นแตกต่างกัน (ดูรหัส vesion และข้อผิดพลาดด้านล่าง)

แต่ไวยากรณ์ดูเหมือนจะถูกต้องสำหรับฉัน ความคิดใด ๆ

โปรดทราบว่า -filter_complex (ไม่มีแล้ว) ถูกแทนที่ด้วย snv ด้วย -vf

$ ffmpeg -i ariel.mov -i logostilo7.png -vf "[0:v][1:v]overlay=x=10:y=main_h-overlay_h-10[outv]" -map "[outv]"  out.mp4
ffmpeg version 0.8.6-6:0.8.6-1ubuntu2, Copyright (c) 2000-2013 the Libav developers
[h264 @ 0x1ce9d60] max_analyze_duration reached
[h264 @ 0x1ce9d60] Estimating duration from bitrate, this may be inaccurate
Input #0, h264, from 'ariel.mov':
  Duration: N/A, bitrate: N/A
    Stream #0.0: Video: h264 (Main), yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1200k tbn, 50 tbc
Input #1, image2, from 'logostilo7.png':
  Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
    Stream #1.0: Video: png, bgra, 479x339, 25 tbr, 25 tbn, 25 tbc
File 'out.mp4' already exists. Overwrite ? [y/N] y
[buffer @ 0x1cebcc0] w:1920 h:1080 pixfmt:yuv420p
Output pad "default" for the filter "src" of type "buffer" not connected to any destination
Error opening filters!

avconv

$ avconv -i ariel.mov -i logostilo7.png -vf "[0:v][1:v]overlay=x=10:y=main_h-overlay_h-10[outv]" -map "[outv]"  out.mp4
avconv version 0.8.6-6:0.8.6-1ubuntu2, Copyright (c) 2000-2013 the Libav developers
  built on Mar 30 2013 22:20:06 with gcc 4.7.2
[h264 @ 0x19f2d40] max_analyze_duration reached
[h264 @ 0x19f2d40] Estimating duration from bitrate, this may be inaccurate
Input #0, h264, from 'ariel.mov':
  Duration: N/A, bitrate: N/A
    Stream #0.0: Video: h264 (Main), yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1200k tbn, 50 tbc
Input #1, image2, from 'logostilo7.png':
  Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
    Stream #1.0: Video: png, bgra, 479x339, 25 tbr, 25 tbn, 25 tbc
[h264 @ 0x19f2d40] Invalid stream specifier: [outv].
Stream map '[outv]' matches no streams.

มีความคิดใดเกี่ยวกับการเปลี่ยนแปลงที่อาจเกิดขึ้นในคำสั่งการซ้อนทับ ffmpeg?

ยิ่งไปกว่านั้นรหัสที่ดูเหมือนว่าจะแก้ไขปัญหานั้นแตกต่างอย่างสิ้นเชิง:

ffmpeg -i ariel.mov   -vf "movie=logostilo7.png [logo]; [in][logo] overlay=10:main_h-overlay_h-10 [out]" out.mov

หมายความว่าวิธีการพิมพ์ลายน้ำแบบ "เก่า" นั้นจบสิ้นแล้วหรือยัง?

คำตอบ:


3

ของคุณffmpegไม่ใช่ของจริงจาก FFmpeg แต่อันที่ล้าสมัยและผิดไปจากที่เก็บ Ubuntu มันมีข้อผิดพลาดที่ไม่ได้รวมจำนวนนับไม่ถ้วนและไม่รองรับฟีเจอร์มากมายเช่น ffmpeg เวอร์ชั่น 1.0 (อาจถึง 0.9) และเหนือกว่า

ดังนั้นจึง-filter_complexไม่ได้ถูกลบออก - ค่อนข้างตรงกันข้าม: งานสร้างของคุณไม่มีเลย คุณต้องการfilter_complexตัวเลือกสำหรับกราฟตัวกรองที่มีอินพุตและเอาต์พุตหลายตัว

นอกจากนี้ยังเป็นชวเลข-vf -filter:vหากเวอร์ชันของคุณไม่รู้จักแสดง-filter:vว่ามันเก่าเกินไป

ดาวน์โหลดบิลด์สแตติกล่าสุดหรือรวบรวม ffmpeg ด้วยตัวคุณเอง จากนั้นตัวอย่างที่คุณเห็นในคำถามอื่น ๆ ควรจะทำงานได้ดี คุณสามารถค้นหาบิวด์แบบคงที่สำหรับระบบปฏิบัติการหลักทั้งหมดในหน้าดาวน์โหลดและคู่มือการรวบรวมที่นี่รวมถึงคำแนะนำเฉพาะสำหรับ Ubuntu

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.