วิธีการวาดภาพที่มีข้อความอยู่ตรงกลางของที่ผ่านทางบรรทัดคำสั่ง?


8

ฉันต้องวาดภาพด้วยข้อความที่อยู่ตรงกลางผ่านทางบรรทัดคำสั่งเพื่อนำไปใส่ในวิดีโอต่อไป ข้อความสีเหลืองง่าย ๆ บนพื้นหลังสีดำ

ฉันลองFFmpegวิธี:

ffmpeg -loop 1 -r 1 -i b.png -b:v 1M -vf "scale=320:240, drawtext=fontfile=/usr/share/fonts/truetype/DejaVuSans.ttf: text='Test Text'" -vcodec mpeg4 -acodec aac preroll.mp4

ซึ่งทำให้ฉันข้อผิดพลาดต่อไปนี้:

[AVFilterGraph @ 0xf56020] No such filter: 'drawtext'

ฉันพยายามที่จะติดตั้งivtoolsและพยายามdrawtoolและidrawสิ่งที่เห็นได้ชัดสำหรับสภาพแวดล้อมเดสก์ทอป

จะสร้างภาพอย่างง่ายพร้อมข้อความใน Ubuntu โดยทางโปรแกรมได้อย่างไร

คำตอบ:


19

สิ่งที่เกี่ยวกับคำสั่งนี้:

convert -background black -size 800x480 -fill "#ff0080"  -pointsize 72 -gravity center label:'Ask Ubuntu' output.png

ป้อนคำอธิบายรูปภาพที่นี่

โดยใช้คำสั่งด้านบนคุณสร้างภาพ. png ที่ว่างซึ่งสีพื้นหลังของมันเป็นสีดำ

พื้นหลังสี
   ตั้งค่าสีพื้นหลัง
   สีพื้นหลังเริ่มต้น (หากไม่มีการระบุหรือพบในภาพ) เป็นสีขาว

ขนาดภาพที่สร้างขึ้นจะเป็น 800x480 ( width[xheight])

ความกว้าง ขนาด[xheight] [+ ชดเชย]
   ตั้งค่าความกว้างและความสูงของภาพดิบ

เติมสี
   สีที่จะใช้เมื่อเติมกราฟิกดั้งเดิม

ตัวเลือกนี้ยอมรับชื่อสีสี hex หรือ RGB ตัวเลข, RGBA, HSL, HSLA, CMYK หรือ CMYKA ดูชื่อสีสำหรับคำอธิบายวิธีระบุอาร์กิวเมนต์สีอย่างถูกต้อง

ตัวอย่างเช่น,

 -fill blue
 -fill "#ff0080"
 -fill "rgb(255,0,128)" 

ใส่ข้อมูลจำเพาะของสีในเครื่องหมายคำพูดเพื่อป้องกัน "#" หรือวงเล็บไม่ให้ตีความโดยเชลล์ของคุณ

หากต้องการพิมพ์รายการชื่อสีทั้งหมดให้ใช้ตัวเลือก-list color

- ปรับขนาดขนาดให้ ตรงกับขนาด
   ของ PostScript, OPTION1 หรือ TrueType

-gravity ประเภท
   กำหนดข้อเสนอแนะของแรงโน้มถ่วงในปัจจุบันสำหรับการตั้งค่าอื่น ๆ อีกมากมายและตัวเลือก

ตัวเลือกประกอบด้วย: NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast ใช้รายการแรงโน้มถ่วงเพื่อรับรายการการตั้งค่าแรงโน้มถ่วงที่มีอยู่ในการติดตั้ง ImageMagick ของคุณ

label:'your Text Here' เขียนข้อความของคุณลงใน image.png

นอกจากนี้ยังเห็นตัวอย่างเพิ่มเติม

ดูตัวเลือกบรรทัดคำสั่งแบบเต็ม


8

หากเรากำลังพูดถึงวิดีโอข้างนอกฉันจะสร้าง SVG อย่างง่ายใน inkscape ด้วยสตริงตัวยึดเช่นOLISTRINGรับวิธีที่ฉันต้องการให้ดูแล้วจัดการมันในบรรทัดคำสั่งเพื่อแทนที่ข้อความไดนามิกของฉันและใช้ Inkscape เพื่อแปลงมันใหม่ .

inkscape -z -e intro.png -w 1920 -h 1080 <(sed 's/OLISTRING/My Video!/' drawing.svg)

ประโยชน์ที่แท้จริงของวิธีนี้คือคุณถูก จำกัด ด้วยสิ่งที่คุณสามารถทำได้ใน Inkscape ... คุณยังได้ผลลัพธ์ที่คมชัดด้วยเครื่องมือการเรนเดอร์ของ Inkscape

นี่คือผลลัพธ์:

ป้อนคำอธิบายรูปภาพที่นี่

ที่แสดงจากนี้ (ผ่านของฉันsed)

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   width="1920"
   height="1080"
   id="svg2"
   version="1.1"
   inkscape:version="0.48.4 r9939"
   sodipodi:docname="New document 1">
  <defs
     id="defs4" />
  <sodipodi:namedview
     id="base"
     pagecolor="#000000"
     bordercolor="#666666"
     borderopacity="1.0"
     inkscape:pageopacity="1"
     inkscape:pageshadow="2"
     inkscape:zoom="0.35"
     inkscape:cx="375"
     inkscape:cy="520"
     inkscape:document-units="px"
     inkscape:current-layer="layer1"
     showgrid="false"
     inkscape:window-width="1920"
     inkscape:window-height="1130"
     inkscape:window-x="-2"
     inkscape:window-y="-3"
     inkscape:window-maximized="1" />
  <metadata
     id="metadata7">
    <rdf:RDF>
      <cc:Work
         rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
        <dc:title></dc:title>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <g
     inkscape:label="Layer 1"
     inkscape:groupmode="layer"
     id="layer1"
     transform="translate(0,27.637817)">
    <flowRoot
       xml:space="preserve"
       id="flowRoot2985"
       style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:Sans;font-style:normal;font-weight:normal;font-size:72px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;text-align:center"><flowRegion
         id="flowRegion2987"><rect
           id="rect2989"
           width="1917.1428"
           height="662.85712"
           x="0"
           y="174.28572"
           style="text-anchor:middle;text-align:center;font-size:72px" /></flowRegion><flowPara
         id="flowPara2991"></flowPara></flowRoot>    <flowRoot
       xml:space="preserve"
       id="flowRoot2993"
       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
       transform="translate(0,192.36218)"><flowRegion
         id="flowRegion2995"><rect
           id="rect2997"
           width="1917.1428"
           height="700"
           x="0"
           y="151.42857" /></flowRegion><flowPara
         id="flowPara2999"
         style="font-size:244px;font-weight:bold;text-align:center;text-anchor:middle;fill:#ffff00;-inkscape-font-specification:Sans Bold">OLISTRING</flowPara></flowRoot>    <flowRoot
       xml:space="preserve"
       id="flowRoot3001"
       style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:Sans;font-style:normal;font-weight:normal;font-size:40px;line-height:125%;letter-spacing:0px;word-spacing:0px"><flowRegion
         id="flowRegion3003"><rect
           id="rect3005"
           width="0"
           height="85.714287"
           x="962.85712"
           y="397.14285" /></flowRegion><flowPara
         id="flowPara3007"></flowPara></flowRoot>  </g>
</svg>

7

ฉันพบวิธีแก้ปัญหา: ติดตั้ง Imagestick:

sudo apt-get install imagemagick

แล้วฉันก็ใช้สิ่งที่ชอบ:

convert -pointsize 36 -fill red -draw 'text 10,10 "Loh pidr text" ' b.png test1.jpg

และจากนั้นใช้

man convert

เพื่อดูเอกสารและเล่นเสียงดัง


-1

คำสั่ง ffmpeg ไม่ได้ทำงานเพราะอูบุนตูไม่ได้มี ffmpeg ก็มี libav แทน

พยายามที่ffmpeg -versionจะยืนยัน (จะกลับ 0.8.something IIRC)

หากคุณได้รับเวอร์ชันล่าสุด (2.4.3) จากhttp://ffmpeg.org Drawtext จะทำงาน


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