2012-04-12 10 views
8

काम नहीं कर रहा है, तो मैं वास्तव में सराहना करता हूं अगर कोई ffmpeg के साथ ऑफसेट के उपयोग के बारे में कुछ पॉइंटर्स दे सकता है। मैंने इस विषय पर कई पदों को पढ़ा है, उनमें से कुछ स्पष्ट रूप से स्पष्ट करते हैं कि ऑडियो और वीडियो को रीसेट-सिंक्रनाइज़ करने के साथ -इसफ़ासेट के साथ, लेकिन मैं इसे काम करने में सक्षम नहीं हूं। मेरे AVI फ़ाइल दो गुजरता में, ffmpeg के साथ एनकोडेड है, दूसरी पारित करने के लिए निम्न आदेश का उपयोग कर:ffmpeg स्ट्रीम ऑफसेट कमांड (-itsoffset)

ffmpeg -i whole-vts_01.avs -pass 2 -y -vcodec libxvid -vtag XVID -b:v 1300K -g 240 -trellis 2 -mbd rd -flags +mv4+aic -acodec ac3 -ac 2 -ar 48000 -b:a 128k output.avi 

जो भी कारण, मैं वीडियो में एक 1 सेकंड देरी के साथ अंत (या ऑडियो 1 है सेक जल्दी)। यह अक्सर नहीं होता है लेकिन मैं इसे समय-समय पर देखता हूं। अन्य प्रयास के अलावा, मैं निम्नलिखित की कोशिश की है:

  1. ऑडियो विकृत और केवल 5 एम 35 लंबे बनाम 1 घंटे 41m:

    (1) ffmpeg -i output.avi -itsoffset 00:00:01.0 -i output.avi -vcodec copy -acodec copy -map 0:0 -map 1:1 output-resynched.avi 
    (2) ffmpeg -i output.avi -itsoffset 00:00:01.0 -i output.ac3 -vcodec copy -acodec copy -map 0:0 -map 1:0 output-resynched2.avi 
    (3) ffmpeg -itsoffset -00:00:01.00 -i output.avi output-resynched8.avi 
    (4) ffmpeg -i output.avi -itsoffset -1.0 -i output.avi -vcodec copy -acodec copy -map 0:1 -map 1:0 output-resynched13.avi 
    

    यहाँ के परिणाम हैं।

  2. (Output.ac3 output.avi की ऑडियो घटक है) वीडियो और ऑडियो मूल के समान, ऑफसेट
  3. ऑडियो काम नहीं किया स्थानांतरित कर दिया हो, लेकिन मूल एन्कोडिंग मानकों डिफ़ॉल्ट लोगों के साथ प्रतिस्थापित (उम्मीद के रूप में)।
  4. ऑडियो खराब और केवल 9 मीटर 56s लंबा बनाम 1h 41 मीटर।

मुझे लगता है कि कई लोग बताते हैं, और स्पष्ट रूप से ऊपर वर्णित प्रक्रिया का उपयोग करते हैं, लेकिन ऐसा लगता है कि यह मेरे लिए काम नहीं कर रहा है। क्या मुझसे साफ़ - साफ़ कुछ चीज़ चूक रही है? मैं बहुत से काम करने के लिए सक्षम होना चाहूंगा क्योंकि यह मेरे वर्कअराउंड समाधान से क्लीनर है।

Fwiw, यहां वांछित परिणाम प्राप्त करने का एक अलग, और अब तरीका है:

सबसे पहले एक वीडियो बनाने के लिए स्थानांतरित कर दिया केवल -ss का उपयोग कर फ़ाइल:

:

ffmpeg -i output.avi -ss 1.0 -vcodec copy -an oupput_videoshifted.avi 

तब ऑडियो निकालने

ffmpeg -i output.avi -vn -acodec copy outputaudioonly.ac3 

और अंत में remux दोनों घटकों:

ffmpeg -i output_videoshifted.avi -i output_audioonly.ac3 -vcodec copy -acodec copy -map 0:0 -map 1:0 output-resynched14.avi 

प्रक्रिया काम करता है, पर्याप्त तेज़ है, लेकिन मैं वास्तव में एक पास-बिट्सफ़ेट समाधान का उपयोग करना पसंद करूंगा।

+0

'[openup.libav.org/issue359) है जो '-itsoffset' ध्वज के साथ है जो आपके द्वारा देखी जा रही समस्याओं के साथ कुछ करने के लिए हो सकता है। दूसरी तरफ, गड़बड़ और कटा हुआ ऑडियो लगता है जैसे कुछ गंभीर है। यदि यह अभी भी एक समस्या है, तो आप किस एफएफएमपीईजी का उपयोग कर रहे हैं? – blahdiblah

उत्तर

4

यहाँ मैं क्या किया है और यह मैं पहली सेटिंग इनपुट मुझे

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

देरी 1 सेकंड और दूसरे इनपुट ऑडियो बस सिर्फ एक प्रतिलिपि बनाने एक प्रति

ffmpeg -y -itsoffset 00:00:01.000 -i "d:\Video1.mp4" -i "d:\Video1.mp4" 
-map 0:v -map 1:a -vcodec copy -acodec copy 
-f mp4 -threads 2 -v warning "Video2.mp4" 

देरी 1 सेकंड इनपुट ऑडियो में दूसरे और पहले इनपुट वीडियो बनाने

ffmpeg -y -i "d:\Video1.mp4" -itsoffset 00:00:01.000 -i "d:\Video1.mp4" 
-map 0:v -map 1:a -vcodec copy -acodec copy 
-f mp4 -threads 2 -v warning "Video2.mp4" 
0

समस्या -vcodec copy -acodec copy पर स्थित है क्योंकि स्थानांतरण केवल keyframes पर काम करेगा। मेरी भी यही समस्या थी।

बस (ऑडियो /) वीडियो नकल नहीं है, -itsoffset साथ बात करने की कोशिश, लेकिन फिर से एन्कोडिंग के लिए

-vcodec libxvid -vtag XVID -b:v 1300K -g 240 -trellis 2 -mbd rd -flags +mv4+aic -acodec ac3 -ac 2 -ar 48000 -b:a 128k 

का उपयोग करें। यह काम करना चाहिए।