ฉันจะแปลงวิดีโอเป็น GIF โดยใช้ ffmpeg ด้วยคุณภาพที่เหมาะสมได้อย่างไร


310

ฉันกำลังแปลงFLVภาพยนตร์เป็นGIFไฟล์ด้วย ffmpeg

ffmpeg -i input.flv -ss 00:00:00.000 -pix_fmt rgb24 -r 10 -s 320x240 -t 00:00:10.000  output.gif

มันใช้งานได้ดี แต่ไฟล์ gif ที่ส่งออกมีคุณภาพต่ำมาก

ความคิดใดที่ฉันสามารถปรับปรุงคุณภาพของ gif ที่แปลงแล้วได้

ผลลัพธ์ของคำสั่ง:

ffmpeg -i input.flv -ss 00:00:00.000 -pix_fmt rgb24 -r 10 -s 320x240 -t 00:00:10.000  output.gif
ffmpeg version 0.8.5-6:0.8.5-0ubuntu0.12.10.1, Copyright (c) 2000-2012 the Libav developers
  built on Jan 24 2013 14:52:53 with gcc 4.7.2
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.flv':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2013-02-14 04:00:07
  Duration: 00:00:18.85, start: 0.000000, bitrate: 3098 kb/s
    Stream #0.0(und): Video: h264 (High), yuv420p, 1280x720, 2905 kb/s, 25 fps, 25 tbr, 50 tbn, 50 tbc
    Metadata:
      creation_time   : 1970-01-01 00:00:00
    Stream #0.1(und): Audio: aac, 44100 Hz, stereo, s16, 192 kb/s
    Metadata:
      creation_time   : 2013-02-14 04:00:07
[buffer @ 0x92a8ea0] w:1280 h:720 pixfmt:yuv420p
[scale @ 0x9215100] w:1280 h:720 fmt:yuv420p -> w:320 h:240 fmt:rgb24 flags:0x4
Output #0, gif, to 'output.gif':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2013-02-14 04:00:07
    encoder         : Lavf53.21.1
    Stream #0.0(und): Video: rawvideo, rgb24, 320x240, q=2-31, 200 kb/s, 90k tbn, 10 tbc
    Metadata:
      creation_time   : 1970-01-01 00:00:00
Stream mapping:
  Stream #0.0 -> #0.0
Press ctrl-c to stop encoding
frame=  101 fps= 32 q=0.0 Lsize=    8686kB time=10.10 bitrate=7045.0kbits/s dup=0 drop=149    
video:22725kB audio:0kB global headers:0kB muxing overhead -61.778676%

ขอบคุณ


1
มันตลกที่ผู้คนยังคงทำงานกับ paletteworks กับ GIF เมื่อ APNG เป็นเรื่องสำคัญ
КонстантинВан

คำตอบ:


447

ffmpeg ตัวอย่าง

เอาต์พุต GIF จาก ffmpeg
183K

ffmpegสามารถส่งออก GIF ที่มีคุณภาพสูง ก็ขอแนะนำเสมอที่จะใช้รุ่นล่าสุด: ดาวน์โหลดหรือรวบรวม

ffmpeg -ss 30 -t 3 -i input.mp4 -vf "fps=10,scale=320:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 output.gif
  • ตัวอย่างนี้จะข้าม 30 วินาทีแรก ( -ss 30) ของอินพุตและสร้างเอาต์พุต 3 วินาที ( -t 3)
  • ตัวกรองfpsกำหนดอัตราเฟรม
  • ตัวกรองมาตราส่วนจะปรับขนาดผลลัพธ์เป็นความกว้าง 320 พิกเซลและกำหนดความสูงโดยอัตโนมัติในขณะที่รักษาอัตราส่วนไว้
  • palettegenและpaletteuse filter จะสร้างและใช้ palette แบบกำหนดเองที่สร้างจากอินพุตของคุณ
  • ตัวกรองแยกจะอนุญาตให้ทุกอย่างทำในคำสั่งเดียว
  • ควบคุมการวนซ้ำด้วย-loopตัวเลือกเอาต์พุต ค่าของการ0วนซ้ำไม่สิ้นสุด

ดูGIF คุณภาพสูงพร้อม FFmpegสำหรับตัวอย่างและตัวเลือกอื่น ๆ อีกมากมาย


convertตัวอย่างImagemagick

เอาต์พุต GIF จาก ffmpeg
227k

อีกวิธีการบรรทัดคำสั่งคือไปป์จากffmpegถึงconvert(หรือmagick) จาก ImageMagick

 ffmpeg -i input.mp4 -vf "fps=10,scale=320:-1:flags=lanczos" -c:v pam -f image2pipe - | convert -delay 10 - -loop 0 -layers optimize output.gif

การตั้งค่าอัตราเฟรม

ตั้งอัตราเฟรมที่มีการรวมกันของการfpsกรองffmpegและใน-delay convertสิ่งนี้อาจซับซ้อนเนื่องจากconvertเพิ่งได้รับกระแสข้อมูลดิบของรูปภาพดังนั้นจึงไม่มีการบันทึกเฟรมต่อวินาที ประการที่สอง-delayค่าในconvertคือticks (มี 100 ticks ต่อวินาที) ไม่ใช่ในเฟรมต่อวินาที ตัวอย่างเช่นกับfps=12.5= 100 / 12.5 = 8 -delay 8=

convertปัดเศษ-delayค่าเป็นจำนวนเต็มดังนั้น 8.4 ผลลัพธ์ใน 8 และ 8.5 ผลลัพธ์ใน 9 ซึ่งหมายความว่ามีผลเฉพาะอัตราเฟรมบางอย่างที่ได้รับการสนับสนุนเมื่อตั้งค่าการหน่วงเวลาสม่ำเสมอเหนือเฟรมทั้งหมด (การล่าช้าเฉพาะสามารถกำหนดต่อเฟรมได้ คำตอบนี้)

-delayดูเหมือนจะถูกละเว้นหากใช้เป็นตัวเลือกเอาต์พุตดังนั้นจึงต้องใช้ก่อนหน้านี้-ตามที่แสดงในตัวอย่าง

สุดท้ายเบราว์เซอร์และโปรแกรมดูรูปภาพอาจมีความล่าช้าขั้นต่ำดังนั้นคุณ-delayอาจถูกเพิกเฉย

วิดีโอที่ได้รับความอนุเคราะห์จากศูนย์ฝึกอบรมการอนุรักษ์ปลาและสัตว์ป่าแห่งสหรัฐอเมริกา


4
เพิ่มผลลัพธ์ตัวอย่างบางส่วน (แต่ยังคงเฟรม) นี่ไฟล์แรกคือ 4.1 MB ตัวที่สองประมาณ 8 MB
slhck

2
@ LordNeckbeard คุณยอดเยี่ยมมาก! ขอบคุณมากสำหรับ-vf scale=320:-1,format=rgb8,format=rgb24
Kamil Hismatullin

6
โดยวิธีการสำหรับconvertคำสั่งสำหรับการแปลงจากเฟรม PNG ฉันลงเอยด้วยการใช้convert -delay 5 -loop 0 -dither None -colors 80 "frames/ffout*.png" -fuzz "40%" -layers OptimizeFrame "output.gif"ซึ่งจะช่วยลดขนาดไฟล์โดยรวมไม่น้อย
Wilf

2
โอเคฉันเข้าใจแล้วฉันเคยใช้scale=0:-1แล้วดังนั้นเมื่อคุณตั้งค่าเครื่องชั่ง0แล้วมันจะทำการปรับขนาดจากวิดีโอ
Mousa Alfhaily

2
คำถามและคำตอบนี้จะต้องเข้ารหัสอย่างถาวรใน Tome (หรืออาจแค่ "ตรึง" สำหรับตอนนี้) เพราะในอีกร้อยปีนับจากนี้การสื่อสารทั้งหมดจะทำผ่านมส์ ฉันคิดว่ากิจกรรมในโพสต์นี้เพียงอย่างเดียวพูดถึงสิ่งนั้น
Jonathan Neufeld

87

หากคุณต้องการหลีกเลี่ยงไฟล์รูปภาพระดับกลางคำสั่งที่จัดทำโดย LordNeckBeard สามารถไพพ์ระหว่างffmpegและ ImageMagick convertเพื่อไม่ต้องใช้ไฟล์กลาง:

ffmpeg -i input.flv -vf scale=320:-1 -r 10 -f image2pipe -vcodec ppm - | convert -delay 5 -loop 0 - output.gif

ตัว-f image2pipeบอก ffmpeg ให้แบ่งวิดีโอออกเป็นรูปภาพและทำให้เหมาะสมที่จะไพพ์ออกและ-vcodec ppmระบุรูปแบบเอาต์พุตเป็น ppm (ด้วยเหตุผลบางอย่างถ้ารูปแบบคือ png convertไม่สามารถอ่านรูปภาพทั้งหมดจากไพพ์หรือ ffmpeg ทำ ไม่ส่งออกพวกเขาทั้งหมด) -สำหรับคำสั่งทั้งสองระบุว่าท่อจะถูกใช้สำหรับการส่งออกและใส่ตามลำดับ

ในการออปติไมซ์ผลลัพธ์โดยไม่บันทึกไฟล์คุณสามารถไพพ์เอาต์พุตจากconvertไปยังconvertคำสั่งที่สอง:

ffmpeg -i input.flv -vf scale=320:-1 -r 10 -f image2pipe -vcodec ppm - | convert -delay 5 -loop 0 - gif:- | convert -layers Optimize - output.gif

การgif:-บอกconvertให้ส่งออกไปเป็นข้อมูลที่จัดรูปแบบ gif และ-layers Optimizeบอกconvertให้ดำเนินการoptimize-frameและoptimize-transparancyวิธีที่สอง (ดูที่ ImageMagick Introduction to Animation Optimization ) โปรดทราบว่าผลลัพธ์จากไฟล์-layers Optimizeอาจไม่ได้ให้ขนาดที่เล็กกว่าเสมอดังนั้นคุณอาจต้องการลองแปลงเป็น gif โดยไม่ต้องปรับให้เหมาะสมก่อนเพื่อให้แน่ใจ

โปรดจำไว้ว่าในระหว่างกระบวนการทั้งหมดนี้ทุกอย่างอยู่ในหน่วยความจำดังนั้นคุณอาจต้องการหน่วยความจำเพียงพอหากภาพมีขนาดค่อนข้างใหญ่


1
ชุดคำสั่งนี้ใช้ได้กับavconv
ฟาเอล

คุณควรรวมคำสั่งแปลงสองคำสั่งสุดท้าย:convert -delay 5 -loop 0 -layers Optimize - output.gif
Clément

ดูเหมือนว่า gif จะทำงานที่ความเร็ว 2x ของวิดีโอต้นฉบับหรือไม่
ไททัน

@Titan เชื่อว่ามันคือ -r 10 ในคำสั่งแรกและ -delay 5 ในครั้งที่สอง ฉันเปลี่ยนความล่าช้าเป็น 10 ด้วยและดูเหมือนว่าจะเล่นได้ตามปกติในขณะนี้
Steven Huang

2
คุณยังสามารถหลีกเลี่ยงไฟล์รูปภาพระดับกลางได้โดยใช้splitตัวกรองใน ffmpeg ไม่จำเป็นต้องไปป์ffmpeg -ss 30 -t 3 -i "input.flv fps=10,scale=320:-1:flags=lanczos,split[x][z];[z]palettegen[y];[x][y]paletteuse" output.gif
ไลน์

37

ในฐานะของ ffmpeg 2.6 เราสามารถทำได้ดีกว่า:

palette="/tmp/palette.png"
filters="fps=15,scale=320:-1:flags=lanczos"

ffmpeg -i input.flv -vf "$filters,palettegen" -y $palette
ffmpeg -i input.flv -i $palette -lavfi "$filters [x]; [x][1:v] paletteuse" -y output.gif

HT


18

ฉันสร้างสคริปต์เวอร์ชันของฉันเองซึ่งกำหนดพารามิเตอร์ความละเอียดเอาต์พุตและอัตราเฟรมเช่นกัน

การทำงาน./gifenc.sh input.mov output.gif 720 10จะส่งออก GIF ขนาด 10fps ที่ความกว้าง 720pps จากภาพยนตร์ที่คุณให้ คุณอาจต้องทำchmod +x gifenc.shเพื่อไฟล์

#!/bin/sh

palette="/tmp/palette.png"

filters="fps=$4,scale=$3:-1:flags=lanczos"

ffmpeg -v warning -i "$1" -vf "$filters,palettegen" -y "$palette"
ffmpeg -v warning -i "$1" -i $palette -lavfi "$filters [x]; [x][1:v] paletteuse" -y "$2"

คุณสามารถอ่านรายละเอียดได้ที่Githubของฉัน

สมมติฐาน: ติดตั้ง ffmpeg และสคริปต์อยู่ในโฟลเดอร์เดียวกับไฟล์อื่น


3
ขอบคุณมากสำหรับสคริปต์ของคุณ ฉันเพิ่งทดสอบและใช้งานได้ดี!
orschiro

15

คำตอบจาก @Stephane นั้นดีมาก แต่มันจะได้รับการเตือนเช่นเดียวBuffer queue overflow, dropping.กับวิดีโอบางรายการและgifเฟรมที่สร้างขึ้นมีบางเฟรมลดลง

นี่คือรุ่นที่ดีกว่าพร้อมfifoตัวกรองเพื่อหลีกเลี่ยงBuffer queue overflowเมื่อใช้paletteuseตัวกรอง โดยใช้splitตัวกรองเพื่อหลีกเลี่ยงการสร้างไฟล์ PNG จานสีระดับกลาง

ffmpeg -i input.mp4 -filter_complex 'fps=10,scale=320:-1:flags=lanczos,split [o1] [o2];[o1] palettegen [p]; [o2] fifo [o3];[o3] [p] paletteuse' out.gif

หากฉันเข้าใจอย่างถูกต้องคุณกำลังแยกอินพุตเป็น o1 และ o2 และคัดลอก o2 ไปยัง o3 แล้วทำไมคุณต้องใช้ o3 ทำไมไม่ใช้ o2 โดยตรง
Chloe

1
@Chloe คุณเห็นการfifoดำเนินการตัวกรองระหว่างo2และo3? เพื่อหลีกเลี่ยงการBuffer queue overflowเตือน
alijandro

+1 สิ่งนี้ทำงานได้ดีสำหรับฉัน (และแก้ไขปัญหาที่อ้างอิง)
เลนคอลลินส์

ฉันรักวิธีนี้อย่างแน่นอน รุ่งโรจน์!
Leonid Usov

10

ทำสคริปต์ทดสอบและใช้งานได้

การใช้งาน:

./avi2gif.sh ./vokoscreen-2015-05-28_12-41-56.avi

มี PHUN :)

vim avi2gif.sh

#!/bin/sh

INPUT=$1

# default settings, modify if you want.

START_AT_SECOND=0; # in seconds, if you want to skip the first 30 seconds put 30 here

LENGTH_OF_GIF_VIDEO=9999999; # in seconds, how long the gif animation should be

echo "Generate a palette:"
ffmpeg -y -ss $START_AT_SECOND -t $LENGTH_OF_GIF_VIDEO -i $INPUT -vf fps=10,scale=320:-1:flags=lanczos,palettegen palette.png

echo "Output the GIF using the palette:"
ffmpeg -ss $START_AT_SECOND -t $LENGTH_OF_GIF_VIDEO -i $INPUT -i palette.png -filter_complex "fps=10,scale=320:-1:flags=lanczos[x];[x][1:v]paletteuse" $INPUT.gif

btw: vokoscreenเป็นเครื่องมือคัดกรองที่ยอดเยี่ยมสำหรับ Linux :)

ขอบคุณมาก Michael Kohaupt :) เขย่าเบา ๆ

สถิติขนาดไฟล์บางส่วน:

5.3M = vokoscreen-2015-04-28_15-43-17.avi -> vokoscreen-2015-05-28_12-41-56.avi.gif = 1013K

เห็นผลลัพธ์ที่นี่


10

ffmpegกับจานวิธีสามารถทำงานในคำสั่งเดียวโดยไม่ต้องตัวกลาง.pngไฟล์

ffmpeg -y -ss 30 -t 3 -i input.flv -filter_complex \
"fps=10,scale=320:-1:flags=lanczos[x];[x]split[x1][x2]; \
[x1]palettegen[p];[x2][p]paletteuse" output.gif

สามารถทำได้ด้วยsplitตัวกรอง


10

Linux / Unix / MacOS

ทำตามวิธีการ @LordNeckbeardด้วยffmpegคำสั่งโปรดค้นหาฟังก์ชัน Bash ที่มีประโยชน์ต่อไปนี้ซึ่งสามารถเพิ่มลงใน~/.bash_profileไฟล์ของคุณ:

# Convert video to gif file.
# Usage: video2gif video_file (scale) (fps)
video2gif() {
  ffmpeg -y -i "${1}" -vf fps=${3:-10},scale=${2:-320}:-1:flags=lanczos,palettegen "${1}.png"
  ffmpeg -i "${1}" -i "${1}.png" -filter_complex "fps=${3:-10},scale=${2:-320}:-1:flags=lanczos[x];[x][1:v]paletteuse" "${1}".gif
  rm "${1}.png"
}

เมื่อโหลดฟังก์ชัน (ด้วยตนเองหรือจาก. ~/.bash_profile) คุณควรมีvideo2gifคำสั่งใหม่

ตัวอย่างการใช้งาน:

video2gif input.flv

หรือ:

video2gif input.flv 320 10

ปรับความกว้างได้ที่ 320 พร้อม 10 เฟรมต่อวินาที

คุณสามารถระบุรูปแบบวิดีโออื่น (เช่น mp4)


MacOS

คุณสามารถลองแอปGIF Breweryซึ่งสามารถสร้าง GIF ได้จากไฟล์วิดีโอ


อีกวิธีหนึ่งคือมีหลายเว็บไซต์ที่ทำการแปลงออนไลน์โดยไม่เสียค่าใช้จ่าย


สคริปต์ของคุณทำให้เกิดข้อผิดพลาดสำหรับฉันเกี่ยวกับไฟล์ png และฉันไม่ได้รับเอาต์พุต gif แต่ไฟล์อินพุต. mp4 ยังคงไม่เปลี่ยนแปลง
lacostenycoder

7

คำตอบที่เลือกจะถือว่าคุณต้องการปรับขนาดวิดีโอต้นทางและเปลี่ยน fps ใน gif ที่สร้างขึ้น หากคุณไม่จำเป็นต้องทำสิ่งนี้งานต่อไปนี้:

src="input.flv"
dest="output.gif"
palette="/tmp/palette.png"

ffmpeg -i $src -vf palettegen -y $palette
ffmpeg -i $src -i $palette -lavfi paletteuse -y $dest

สิ่งนี้มีประโยชน์เมื่อฉันต้องการ GIF ที่สร้างวิดีโอต้นฉบับที่ฉันใช้อย่างซื่อสัตย์


6

สำหรับผู้ใช้ windows:
สร้างvideo2gif.batไฟล์ในไดเรกทอรี windows ด้วยเนื้อหาเหล่านี้:

@echo off
set arg1=%1
set arg2=%arg1:~0,-4%
ffmpeg -y -i %arg1% -vf fps=10,scale=-1:-1:flags=lanczos,palettegen %TEMP%\palette.png
ffmpeg -i %arg1% -i %TEMP%\palette.png -filter_complex "fps=10,scale=-1:-1:flags=lanczos[x];[x][1:v]paletteuse" %arg2%.gif
del /f %TEMP%\palette.png

และทุกที่ที่คุณสามารถใช้งานได้จะเป็นเช่นนี้:

video2gif myvideo.mp4

แล้วคุณมีmyvideo.gifอยู่ในไดเรกทอรีปัจจุบัน
หากmyvideo.gifมีอยู่คำถามจากคุณสำหรับการเขียนทับมัน

แก้ไข:

ฉันแนะนำให้ใช้สคริปต์ชุดงานนี้: https://github.com/NabiKAZ/video2gif


2
ผมเห็นว่าคุณได้ทำสิ่งที่สองที่นี่: (1) เขียนคำสั่งเป็นคำสั่งสคริปต์ Windows (ค้างคาว) และ (2) มีให้บริการที่แตกต่างกันของตัวกรอง (ไม่มีคำตอบอื่น ๆ ใช้ทั้งสอง fps=10และscale=-1:-1)  คำตอบของซอนได้ให้แบตช์ไฟล์ของเราแล้วและหนึ่งในนั้น (เช่นเชลล์สคริปต์ในคำตอบของ pjeและคำตอบของผู้เผยแพร่ศาสนา ) มีข้อได้เปรียบที่จะกำหนดรายการตัวกรองให้กับตัวแปร ( หนึ่งครั้ง ), ... (ต่อ)
Scott

1
(ต่อ) ... ดังนั้นจึงไม่จำเป็นต้องสะกดรายการสองครั้ง (เช่นไฟล์แบตช์ของคุณ) (ฉันสันนิษฐานว่าสิ่งนี้สร้างความเสี่ยงหากผู้ใช้แก้ไขสคริปต์เพื่อเปลี่ยนหนึ่งในรายการ แต่ไม่ใช่รายการอื่นความไม่สอดคล้องกันจะทำให้เกิดปัญหา) อย่างน้อยคุณสามารถอธิบายตัวเลือกของตัวกรอง ( fps=10,scale=-1:-1) ได้หรือไม่? (ดูคำตอบที่น่าสังเกตสำหรับตัวอย่างของคำอธิบายของส่วนต่าง ๆ ของคำสั่ง)
Scott

1
@Scott คุณพูดถูกต้องแล้วดังนั้นฉันจึงเขียนสคริปต์ที่มีประโยชน์ใหม่ได้ที่นี่: github.com/NabiKAZ/video2gif
Nabi KAZ

4

ด้านล่างนี้เป็นไฟล์แบตช์สำหรับผู้ใช้ Windows:

gifenc.bat:

set start_time=0
set duration=60
set palette="c:\temp\palette.png"
set filters="fps=15,scale=-1:-1:flags=lanczos"
ffmpeg -v warning -ss %start_time% -t %duration% -i %1 -vf "%filters%,palettegen" -y %palette%
ffmpeg -v warning -ss %start_time% -t %duration% -i %1 -i %palette% -lavfi "%filters% [x]; [x][1:v] paletteuse" -y %2

แหล่งที่มา: GIF คุณภาพสูงที่มี FFmpeg: การแยกตัวอย่าง

หากคุณต้องการใช้ตัวแปรอินพุตหนึ่งตัวและมีชื่อเอาต์พุตมีเพียงส่วนขยาย GIF (ออกเสียง JIF) ให้ใช้สิ่งนี้แทน:

set start_time=0
set duration=60
set palette="c:\temp\palette.png"
set filters="fps=15,scale=-1:-1:flags=lanczos"
ffmpeg -v warning -ss %start_time% -t %duration% -i %1 -vf "%filters%,palettegen" -y %palette%
set var1=%1
set var2=%var1:~0,-4%
ffmpeg -v warning -ss %start_time% -t %duration% -i %1 -i %palette% -lavfi "%filters% [x]; [x][1:v] paletteuse" -y %var2%.gif

3

วิธีเพิ่ม windows 7/10 "คลิกขวา" รายการเมนูบริบทเพื่อแปลงไฟล์วิดีโอของคุณเป็น gif

คำตอบอื่น ๆ บางส่วนกล่าวถึงสคริปต์video2gifซึ่งฉันใช้ แต่คุณสามารถใช้สคริปต์ใด ๆ

ในการสร้างตัวเลือกเมนูบริบทคุณต้องแก้ไขรีจิสตรี เปิดพรอมต์คำสั่ง powershell โดยเรียกใช้ privs ผู้ดูแล ดำเนินการคำสั่งเหล่านี้:

$key = "Registry::HKEY_CLASSES_ROOT\`*\shell\Run Video2Gif"
New-Item -Path $key"\Command" -Value "C:\dev\ffmpeg\ffmpeg-3.4.2-win64-static\bin\video2gif.bat `"%1`"" -Force

ตอนนี้เมื่อคุณคลิกขวาที่ไฟล์คุณจะมีตัวเลือก "Run Video2Gif"!

ครับผมติดตั้ง ffmpeg ไปC:\dev\ffmpeg\ffmpeg-3.4.2-win64-static\และใส่video2gif.batสคริปต์ใน dir ffmpeg.exeถังขวาถัดไป ฉันเพิ่มC:\dev\ffmpeg\ffmpeg-3.4.2-win64-static\binหน้าต่างของฉันPATHด้วย แต่ฉันไม่คิดว่าคุณจะต้องการ

หากคุณต้องการตัวเลือกในการจัดหาแฟล็กบรรทัดคำสั่งพิเศษ / args ให้กับสคริปต์ให้สร้างไฟล์ใหม่ชื่อvideo2gif-prompt.batและให้รีจิสตรีอ้างอิงแทนvideo2gif.bat:

@echo off
set /p inp=Enter extrta args, if desired:
C:\dev\ffmpeg\ffmpeg-3.4.2-win64-static\bin\video2gif.bat %* %inp%

คุณยังสามารถกด Enter เพื่อรับค่าเริ่มต้นได้อย่างรวดเร็ว

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