OGV वीडियो को GIF एनीमेशन में बदलें?


40

मैं के साथ ogv वीडियो बनाया gtk-recordmydesktopस्क्रीनकास्ट कार्यक्रम, इस समस्या से निपटने की कोशिश कर रहा यहाँ एक्स मैं bruteforce साथ वीएलसी के साथ वीडियो देख सकते हैं।

अब, कार्य OGV वीडियो को GIF एनिमेशन में बदलने के लिए कुछ तरीके खोजना है ताकि मैं उन्हें SE पर प्रदर्शित कर सकूं। मैं उसे कैसे कर सकता हूँ?

जवाबों:


38

इस पर एक नज़र डालें: https://askubuntu.com/questions/107726/how-to-create-animated-gif-images-of-a-screencast/107735#107735

..... के बाद डेस्कटॉप रिकॉर्डर एक में रिकॉर्डिंग बचाया है ogv वीडियो, एम प्लेयर पर कब्जा करने के लिए इस्तेमाल किया जाएगा जेपीईजी स्क्रीनशॉट, उन्हें में बचत 'उत्पादन' निर्देशिका।

एक टर्मिनल पर:

mplayer -ao null <video file name> -vo jpeg:outdir=output

स्क्रीनशॉट को एनिमेटेड जिफ़ में बदलने के लिए ImageMagick का उपयोग करें ।

convert output/* output.gif

आप इस तरह से स्क्रीनशॉट ऑप्टिमाइज़ कर सकते हैं:

convert output.gif -fuzz 10% -layers Optimize optimised.gif

1
बड़ी संख्या में छवियों के लिए, मुझे -limit map 1कन्वर्ट करने के लिए जोड़ना पड़ा (अन्यथा "किल्ड" मिला)।
एक्स

30 सेकंड के एक ओवीवी वीडियो के साथ, कन्वर्ट कमांड ने मेरे सभी सीपीयू को ले लिया और मैं इसे रोकने से पहले 10 मिनट के लिए जा रहा था। -limit map 1कमांड में जोड़ने से यह ठीक नहीं हुआ।
अधिकतम प्लीनर

1
ffmpeg -i output/00000%03d.jpg output.gif Unix.stackexchange.com/questions/24014/…
Dawid Drozd

यह उल्लेख करता है कि प्रत्यक्ष convert output/* -fuzz 10% -layers Optimize optimised.gifरूप से भी संभव है, और दो-कमांड पथ की तुलना में अधिक तेज़ है। साथ ही, mplayerआसानी से pngस्क्रीनशॉट भी बनाता है , जिसे वेबसाइट या GUI के कैप्चर के लिए पसंद किया जा सकता है।
राफेल 10

21

अच्छी गुणवत्ता के साथ सरल स्क्रिप्ट

स्क्रिप्ट:

inputFile=$1

FPS=15
WIDTH=320

#Generate palette for better quality
ffmpeg -i $inputFile -vf fps=$FPS,scale=$WIDTH:-1:flags=lanczos,palettegen tmp_palette.png

#Generate gif using palette
ffmpeg -i $inputFile -i tmp_palette.png -loop 0 -filter_complex "fps=$FPS,scale=$WIDTH:-1:flags=lanczos[x];[x][1:v]paletteuse" output.gif

rm tmp_palette.png

से कोड: https://superuser.com/a/556031/295664

पैलेट के बिना : (231 KB)

यहाँ छवि विवरण दर्ज करें

पैलेट के साथ : (573 KB)

यहाँ छवि विवरण दर्ज करें


4

यह वन-लाइनर मेरे लिए काम कर रहा है:

ffmpeg -i video.ogv video.gif

2
क्या यह मूल रूप से उपयोग किए जाने वाले मौजूदा उत्तरों से अलग है ffmpeg? कैसे?
ilkachachu

1
@ilkkachu मैं एक बहुत ही त्वरित, सरल और आसानी से याद रखने वाला समाधान ढूंढ रहा था। अन्य उत्तर बहुत अधिक जटिल हैं और पहली नज़र में समझना इतना आसान नहीं है (शायद उच्च गुणवत्ता वाले परिणाम, हालांकि)।
लूकर

2
ifile=~/test.ogv

echo '# Determine input WxH and FPS' 
eval "$(ffmpeg -i "$ifile" 2>&1 |sed -nr 's/.*Stream.*Video.* ([0-9]+x[0-9]+),.*[^[0-9.]([0-9.]+).*tbr,.*/WxH=\1;FPS=\2/p')"

echo '# Output multiple images from the input video'
ffmpeg -i "$ifile" -r $FPS -s $WxH -f image2 -vframes 100 -y ~/test-%03d.jpg 2>/dev/null

echo '# use ImageMagic "convert" to generate the animated .gif' 
convert -delay 20 ~/test-[0-9][0-9][0-9].jpg  ~/test.gif 

echo '# remove temp image files'    
rm -f  ~/test-[0-9][0-9][0-9].jpg

echo 'Done!'

1
PNG में कनवर्ट करने का सुझाव दें, न कि JPEG, बड़ा लेकिन पुन: संपीड़न कलाकृतियों को कम करता है।
विचारमान 42
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.