पर बहुत तेजी से खेलती हैं मैं एक libavformat एपीआई रैपर पर काम कर रहा हूं जो MP4 फ़ाइलों को H.264 और एएसी के साथ स्ट्रीमिंग के लिए उपयुक्त एमपीईजी-टीएस सेगमेंट में परिवर्तित करता है। मैं फिर से एन्कोडिंग के बिना एक साधारण स्ट्रीम कॉपी कर रहा हूं, लेकिन मेरे द्वारा उत्पादित फाइलें 24 एफपीएस की बजाय वीडियो को 3600 एफपीएस पर वापस चलाती हैं।एफएफएमपीजी के libavformat एपीआई का उपयोग कर एक सीधी स्ट्रीम कॉपी के साथ बनाई गई फ़ाइलें 3600 एफपीएस
यहाँ ffprobe https://gist.github.com/chrisballinger/6733678 से कुछ आउटपुट हैं, टूटी हुई फ़ाइल के नीचे है:
r_frame_rate=1/1
avg_frame_rate=0/0
time_base=1/90000
start_pts=0
start_time=0.000000
duration_ts=2999
duration=0.033322
मैन्युअल ffmpeg के माध्यम से भेजा एक ही इनपुट फ़ाइल उचित टाइमस्टैम्प जानकारी है: मेरा मानना है कि
r_frame_rate=24/1
avg_frame_rate=0/0
time_base=1/90000
start_pts=126000
start_time=1.400000
duration_ts=449850
duration=4.998333
समस्या झूठ libavformat के मेरे सेटअप में कहीं भी: https://github.com/OpenWatch/FFmpegWrapper/blob/master/FFmpegWrapper/FFmpegWrapper.m#L349 जहां मैंने ffmpeg.c से कोड का एक गुच्छा repurposed जो प्रत्यक्ष स्ट्रीम प्रति के लिए आवश्यक था।
चूंकि 3600 "जादू संख्या" (60 * 60) जैसा लगता है, यह उतना आसान हो सकता है जितना कि मैं समय पैमाने को ठीक से सेट नहीं कर रहा हूं, लेकिन मुझे यह पता नहीं लगाया जा सकता है कि मेरा कोड ffmpeg/avconv से अलग हो जाता है।
इसी प्रकार के प्रश्न यहाँ है, लेकिन मुझे नहीं लगता कि वे जहाँ तक मिल गया के रूप में मैंने किया था: Muxing a H.264 Annex B & AAC stream using libavformat with vcopy/acopy
धन्यवाद! मुझे पूरा यकीन नहीं था कि समय आधार को सही तरीके से कैसे पुन: सहेजना है, लेकिन ऐसा लगता है कि यह मुझे सही दिशा में इंगित करने में मदद कर सकता है। मैं आपको बता दूंगा कि यह कैसे चला जाता है! –