YouTube के लिए ऑडियो और अभी भी छवि के साथ वीडियो बनाना


23

मैं निम्नलिखित कमांड चला रहा हूं:

ffmpeg -i audio.mp3 -ar 44100 -f image2 -i logo.jpg -r 15 -b 1800 -s 640x480 foo.mov

जो मेरे रिकॉर्ड किए गए ऑडियो और उस पर एक छवि के साथ सफलतापूर्वक वीडियो आउटपुट करता है।

जब मैं YouTube पर इसे अपलोड करने और अपलोड करने की कोशिश करता हूं तो यह प्रोसेस करने में विफल रहता है, चाहे मैं जो भी फॉर्मेट आजमाऊं: .Mov, .avi, .flv, .mp4

क्या कुछ सेटिंग है जो मैं ऊपर याद कर रहा हूं जो कि एक प्रारूप उत्पन्न करेगा जिसे Youtube स्वीकार करेगा? मैं ffmpeg प्रलेखन के माध्यम से देखने की कोशिश की है, लेकिन मैं अपने सिर पर हूँ।

मैंने 30 सेकंड के एमपी 3 के साथ 2 सेकंड का वीडियो डालकर एक प्रयोग किया। जब मैंने youtube पर अपलोड किया, तो परिणामी वीडियो केवल 2 सेकंड लंबा था। तो यह हो सकता है कि YouTube केवल लंबाई के लिए वीडियो ट्रैक पर दिखता है, और चूंकि एक तस्वीर केवल एक फ्रेम लंबी है या जो कुछ भी, शायद वह इसे बोर करती है।

जवाबों:


13

यहाँ काम किया है:

ffmpeg -i audio.mp3 -f image2 -loop 1 -i logo.jpg 
-r 15 -s 640x480 \
-c:v libx264 -crf 18 -tune stillimage -preset medium \
-shortest foo.mov

विशेष रूप से, loopविकल्प, जो फ़्रेम के रूप में छवि को डुप्लिकेट करेगा। फिर shortestफ़ाइल को बढ़ने और बढ़ने से रखने के विकल्प की भी आवश्यकता होगी (इस तरह से यह सबसे छोटी धारा की लंबाई तक पहुँच जाती है - यहाँ, ऑडियो फ़ाइल)।

rविकल्प फ्रेम दर बदलता है, और crf 18गुणवत्ता (यहाँ कम वीडियो की गुणवत्ता के लिए एक उच्च मूल्य का उपयोग करें) तय करता है। अधिक जानकारी के लिए यहां देखें: FFmpeg: अंतिम वीडियो और ऑडियो हेरफेर उपकरण


2
मेरे लिए काम नहीं करता है। मुझे एक-फ्रेम की फिल्म मिलती है।
पावेल वलसोव

मैं अब मेरे लिए काम करता हूं।
मोलनरग

4

कोड का एक टुकड़ा जो मेरे लिए काम करता है, दूसरे फोरम से:

ffmpeg -loop 1 -r ntsc -i image.jpg -i song.mp3 -c:a copy -c:v libx264 -preset fast -threads 0 -shortest output.mkv 

2

मैंने पावेल का कोड लिया, जिसने मेरे लिए भी काम किया, और इसे अनावश्यक विकल्पों को ट्रिम करके छोटा कर दिया:

ffmpeg -loop 1 -shortest -i <audio file> -i <image file> <output video file>

यह एक सामान्य रूप है जो इनपुट के रूप में किसी भी छवि और ऑडियो फ़ाइल के साथ काम करता है और आउटपुट के रूप में एक वीडियो फ़ाइल का उत्पादन करता है।

कहा कि, चूंकि आपकी वीडियो स्ट्रीम अनिश्चित काल के दौरान दोहराई गई एकल तस्वीर से बनेगी, आप कम फ्रेम दर (जो कि एक सेकंड में दिखाई देने वाली छवियों की संख्या है) सेट कर सकते हैं -r। ध्यान दें कि सभी आउटपुट कंटेनर कम फ्रेम दर की अनुमति नहीं देते हैं। एक यह है कि aviआप ऐसा कर सकते हैं:

ffmpeg -loop 1 -shortest -r 0.1 -i <audio file> -i <image file> output.avi

यह 25 के डिफ़ॉल्ट के बजाय 0.1 (यानी प्रत्येक 10 सेकंड में एक फ्रेम) की दर के साथ एक वीडियो फ़ाइल बनाएगा। यह फ़ाइल आकार को प्रभावित करेगा लेकिन वीडियो की गुणवत्ता को नहीं। आखिरकार, आप बेहतर ऑडियो गुणवत्ता प्राप्त करने के लिए ऑडियो बिटरेट सेट कर सकते हैं -ab। यह वह कमांड है जिसका उपयोग मैं वास्तव में youtube के लिए इस तरह के वीडियो बनाने के लिए करता हूं:

ffmpeg -loop 1 -shortest -r 0.1 -i <audio file> -i <image file> -ab 128k output.avi

धन्यवाद। मैं भागा ffmpeg -loop 1 -shortest -r 0.1 -i audio.mp3 -i image.jpg output.aviलेकिन 'ऑप्शन लूप नहीं मिला।' कोई विचार?
कर्नल पैनिक

@col यदि आप अभी भी रुचि रखते हैं: आपको छवि इनपुट से पहले लूप विकल्प की आवश्यकता है, न कि ऑडियो से पहले।
15

यह मेरे लिए काम कर रहा है:ffmpeg -i <audio file> -loop 1 -i <image file> -shortest <output video file>
करोलिंगर

2

avconv के साथ:

avconv -i input.mp3 -loop 1 -f image2 -i logo.png -r 30 -s 640x480 -ab 128k -ar 44100 -ac 1 -ss 00:00:00.000 -t 01:02:03.123 foo.ogv

SuperUser में आपका स्वागत है और आपके उत्तर के लिए धन्यवाद। आप क्या प्रस्ताव कर रहे हैं और क्यों सहायक होगा, इसके बारे में कुछ और विस्तार से।
ब्रैड पैटन

1
प्रतिक्रिया ffmpeg की वजह से पदावनत है
ZiTAL

2
कोई ffmpeg प्रोजेक्ट नहीं चल रहा है। एक विवाद था जो पदावनत संदेश को जन्म देता है। देखें stackoverflow.com/questions/9477115/...
ब्रैड पैटन

2
-shortestमैन्युअल रूप से घोषित समय के बजाय आउटपुट विकल्पों का उपयोग करें ( यदि संभव हो तो ffmpegइसके बजाय उपयोग करें avconv)।
ल्लगन

2
यदि किसी की दिलचस्पी है तो मामले में एक पटकथा तैयार की
डलायलेन

0

मुझे यह बहुत प्रयोग के बाद काम करने के लिए मिला: https://www.youtube.com/watch?v=qjlDT819Q3s

  1. वीडियो को https://trac.ffmpeg.org/wiki/Create%20a%20video%20slideshow%20from%20images के अनुसार वीडियो में बदलें :

    ffmpeg -framerate 1/20 -i png/img-%03d.png -c:v libx264 -vf "fps=25,format=yuv420p" png.mp4

    यहां मैं कई छवियों का उपयोग करता हूं और उन्हें हर 20 के दशक में बदल देता हूं।

  2. उपरोक्त वीडियो की पर्याप्त प्रतियों को अपने ऑडियो की अवधि को https://trac.ffmpeg.org/wiki/Concatenate के अनुसार जोड़ने के लिए । अन्य उपाय, जैसे ffmpeg -i wav.wav -i png.mp4 youtube.mp4कि सही काम करने की अपेक्षा करना, YouTube द्वारा अस्वीकार कर दिया गया है (साथ ही, VLC जैसे खिलाड़ी भ्रमित हैं और ठीक से नहीं हो सकते हैं)। मेरा अनुमान है कि समय की स्थितियों को कॉपियों में समायोजित करने की आवश्यकता है, जो ffmpegतब तक नहीं होती हैं, जब तक कि उन्हें संक्षिप्त नहीं किया जाता है:

    ffmpeg -f concat -i pngs.txt -c copy pngs.mp4

    (जहाँ फ़ाइल pngs.txtको जरूरत के अनुसार अधिक प्रतियां शामिल करने के लिए हाथ से बनाया गया है: प्रतियां = ऑडियो लंबाई / वीडियो लंबाई)

  3. अपने ऑडियो को https://www.virag.si/2015/06/encoding-videos-for-youtube-with-ffmpeg/ के अनुसार 2 में प्राप्त वीडियो के साथ मिलाएं :

    ffmpeg -i pngs.mp4 -i wav.wav -shortest -codec:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p -codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart youtube.mp4

अब फ़ाइल youtube.mp4को YT द्वारा स्वीकार किया जाना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.