मैं चाहता हूं कि मेरी वेबसाइट उपयोगकर्ताओं को मेरे द्वारा प्रदान की जाने वाली स्रोत वीडियो से अपनी क्लिप बनाने की अनुमति दे।
मेरे पास एक स्रोत वीडियो फ़ाइल है जिसे मैं पहली बार किसी वेबसाइट के लिए उपयुक्त चीज़ में बदलना चाहता हूँ:
Input #0, matroska,webm, from 'source.mkv':
Duration: 00:28:18.57, start: 0.000000, bitrate: 10183 kb/s
Stream #0:0: Video: h264 (Constrained Baseline), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 48 tbc (default)
Stream #0:1: Audio: mp3, 44100 Hz, stereo, s16, 128 kb/s (default)
मैं इसे बदलने के लिए ffmpeg का उपयोग करता हूं:
ffmpeg -i source.mkv -c:v libx264 -c:a aac -strict experimental -vf scale="960:-1" source.mp4
इस वीडियो को वापस देखते हुए यह मेरी आवश्यकताओं के लिए अच्छी गुणवत्ता और छोटे फ़ाइल आकार के लिए पर्याप्त है, और मेरी वेबसाइट पर लोड / निभाता है।
मेरे पास एक वेबपेज है जो उपयोगकर्ताओं को इस वीडियो पर एक शुरुआत और समापन बिंदु का चयन करने देता है - और एक क्लिप बनाता है। यहाँ ffmpeg कमांड का एक उदाहरण दिया गया है जिसका उपयोग मैं उसके लिए करता हूँ:
-ss 577.920 -i source.mp4 -t 011.980 -codec:v copy -codec:a copy -vf scale="960:-1" clip1.mp4
समस्या यह है कि क्लिप हमेशा पर्याप्त समय-सटीक नहीं होती है। आमतौर पर ऑडियो काफी सटीक होता है, लेकिन वीडियो आधा सेकंड पहले या कुछ और बंद हो जाता है।
क्या यह कहने का कोई सटीक और इन-सिंक बनाने का कोई तरीका है, एक सेकंड का 0.2?
संपादित करें: जोड़ना -force_key_frames 00:00:00.2
मदद नहीं की।
संपादित करें: मैंने अच्छे (ईश) परिणामों के -c:v libx264 -c:a aac -strict experimental
बजाय उपयोग करने के लिए क्लिपिंग को बदल दिया -codec:v copy -codec:a copy
।
फ़ाइल बिना किसी समस्या के बाहरी रूप से खेल सकती है - लेकिन जब मैं इसे अपने html5 वीडियो तत्व में लोड करता हूं और इसे खेलता हूं - वीडियो का अंतिम भाग (ऑडियो ठीक है) जमा देता है। अंतिम भाग जो जमा देता है वह एक दूसरे लंबे समय से कम है।
मैं एक और वीडियो एनकोडर के साथ यह कोशिश करनी चाहिए? Libx264 के लिए सबसे अच्छा विकल्प क्या है? ध्यान में रखते हुए, मैं शायद यह एक सार्वजनिक वेबसाइट पर होना चाहता हूँ।
लेकिन इस तथ्य पर लटका नहीं है कि यह एमपीसी या विंडोज मीडिया प्लेयर जैसे खिलाड़ी के साथ समस्या के बिना सटीक रूप से खेलता है, यह बताता है कि यह Google क्रोम या HTML वीडियो तत्व के साथ एक समस्या है? या मैं एक असमर्थित एन्कोडिंग या कुछ का उपयोग कर रहा हूँ?