दिलचस्प पोस्ट
एक constexpr सरणी अनिवार्य रूप से इस्तेमाल किया है जब subscripted? इकाई फ़्रेमवर्क: "विदेशी कुंजी बाधा को हल करने के लिए कैसे चक्र या एकाधिक कास्टेड पथ का कारण हो सकता है"? ऑरेकल में DATE को फ़ॉर्मेट करना चयन / ग्रुप द्वारा – समय के खंड (10 सेकंड, 30 सेकंड, आदि) मैं वादा के अंदर स्थिति कैसे वापस कर सकता हूं? एक जेएलैबल लपेटो, यह एक अधिकतम चौड़ाई सेट करके पाठ है सेल चयनित होने पर UITableViewCell उपदृश्य गायब हो जाता है जावा में regex को समझना: विभाजित ("\ t") बनाम विभाजन ("\\ t") – वे दोनों काम करते हैं, और उन्हें कब उपयोग किया जाना चाहिए .NET प्रतिबिंब की "लागत" क्या है? होमब्रे में अजगर सिमलिंक कैसे करें? कैसे एक वेक्टर में है और एक और नहीं है यह बताने के लिए कैसे? PHP: एक डबल कोट्स के भीतर एक चर का उपयोग करना मैं एक फ़ंक्शन को एक ऑनक्लिक विशेषता से स्पष्ट नाम क्यों नहीं बुला सकता हूं? PHP शॉर्ट टैग का उपयोग करने के लिए स्वीकार्य हैं? मैं OpenSSL का उपयोग कर SubjectAltName के साथ स्व-हस्ताक्षरित प्रमाणपत्र कैसे बना सकता हूं?

कैसे एमपी 4, wmv, flv, mov वीडियो से वीडियो अवधि प्राप्त करने के लिए

ठीक है। असल में मुझे ज्यादातर एमपी 4 प्रारूप की आवश्यकता है लेकिन अगर अन्य प्रकार के लिए भी संभव है, तो अच्छा होगा। मुझे फाइल की अवधि को पढ़ने की आवश्यकता है I मैं सी # 4.0 के साथ कैसे कर सकता हूँ?

तो मुझे जिस चीज़ की ज़रूरत है वह इस वीडियो की तरह है: 13 minutes 12 seconds

मैं भी 3 तृतीय पक्ष exes का उपयोग कर सकते हैं जैसे कि वे फ़ाइल के बारे में जानकारी को पाठ फ़ाइल में सहेजते हैं मैं उस पाठ फ़ाइल को पार्स कर सकता हूँ।

धन्यवाद।

Solutions Collecting From Web of "कैसे एमपी 4, wmv, flv, mov वीडियो से वीडियो अवधि प्राप्त करने के लिए"

आप DirectShow.NET आवरण लाइब्रेरी के माध्यम से डायरेक्टशो एपीआई MediaDet ऑब्जेक्ट का उपयोग कर सकते हैं। कोड नमूने के लिए वीडियो की लम्बाई प्राप्त करना देखें, get_StreamLength आपको सेकंड में अवधि देता है यह मानता है कि विंडोज में एमपीईजी -4 डेमल्टीप्लेसर इंस्टॉल किया गया है (7 से पहले विंडोज के साथ तीसरे पक्ष के घटकों की आवश्यकता है, मेरा मानना ​​है कि वही सिज़ोर द्वारा दूसरे उत्तर पर लागू होता है, हालांकि घटक पुनर्वितरण करने के लिए स्वतंत्र हैं)।

आप विंडोज मीडिया प्लेयर का उपयोग भी कर सकते हैं, हालांकि यह आपके द्वारा अनुरोधित सभी फाइल प्रकारों का समर्थन नहीं करता है

 using WMPLib; public Double Duration(String file) { WindowsMediaPlayer wmp = new WindowsMediaPlayerClass(); IWMPMedia mediainfo = wmp.newMedia(file); return mediainfo.duration; } } 

शेल 32 के लिए पी / आवेज़ के बारे में यह जवाब मुझे आम विंडोज विस्टा / 7/2008/2008 आर 2 एपीआई तक पहुंचने के लिए विंडोज़ एपीआई कोड पैक की याद दिलाता है।

यह बहुत आसान था, सम्मिलित किए गए नमूनों में सम्पत्तिएडिट डेमो का उपयोग करके, शैल 32 एपीआई को विभिन्न मीडिया फ़ाइल प्रॉपर्टी प्राप्त करने के लिए, जैसे अवधि।

मैं मानता हूं कि उचित जनसंपर्क स्थापित करने के लिए वही पूर्वापेक्षित लागू होता है, लेकिन यह काफी सरल था, क्योंकि यह केवल Microsoft.WindowsAPICodePack.dll संदर्भ में आवश्यक है.विंडोज़ एपीआईसीडीपैक। Dll और Microsoft.WindowsAPICodePack.Shell.dll और निम्न कोड:

 using Microsoft.WindowsAPICodePack.Shell; using Microsoft.WindowsAPICodePack.Shell.PropertySystem; using (ShellPropertyCollection properties = new ShellPropertyCollection(filePath)) { foreach (IShellProperty prop in properties) { string value = (prop.ValueAsObject == null) ? "" : prop.FormatForDisplay(PropertyDescriptionFormatOptions.None); Console.WriteLine("{0} = {1}", prop.CanonicalName, value); } } using (ShellObject shell = ShellObject.FromParsingName(filePath)) { // alternatively: shell.Properties.GetProperty("System.Media.Duration"); IShellProperty prop = shell.Properties.System.Media.Duration; // Duration will be formatted as 00:44:08 string duration = prop.FormatForDisplay(PropertyDescriptionFormatOptions.None); } 

एक MPEG-4 / AAC ऑडियो मीडिया फ़ाइल के लिए कुछ सामान्य गुण:

 System.Audio.Format = {00001610-0000-0010-8000-00AA00389B71} System.Media.Duration = 00:44:08 System.Audio.EncodingBitrate = ?56kbps System.Audio.SampleRate = ?32 kHz System.Audio.SampleSize = ?16 bit System.Audio.ChannelCount = 2 (stereo) System.Audio.StreamNumber = 1 System.DRM.IsProtected = No System.KindText = Music System.Kind = Music 

आईएमएचओ आप मीडियाइन्फो का उपयोग कर सकते हैं जो आपको मीडिया फ़ाइलों के बारे में बहुत सी जानकारी देता है
इसके लिए एक सीएलआई है ताकि आप इसे अपने कोड से इस्तेमाल कर सकें और आपकी ज़रूरत की जानकारी प्राप्त कर सकें।
आप इस लिंक को देख सकते हैं

मुझे लगता है कि आप FFMPEG – http://www.ffmpeg-csharp.com/ की तलाश में हैं

वहाँ भी कुछ मुफ्त विकल्प हैं जो आप इस प्रश्न में उनके बारे में पढ़ सकते हैं – नेट में FFmpeg का उपयोग कर रहे हैं?

  FFMpeg.NET FFMpeg-Sharp FFLib.NET 

आप इस लिंक को एफएफएमपीईजी के उपयोग और अवधि को खोजने के उदाहरणों के लिए देख सकते हैं – http://jasonjano.wordpress.com/2010/02/09/a-simple-c-wrapper-for-ffmpeg/

  public VideoFile GetVideoInfo(string inputPath) { VideoFile vf = null; try { vf = new VideoFile(inputPath); } catch (Exception ex) { throw ex; } GetVideoInfo(vf); return vf; } public void GetVideoInfo(VideoFile input) { //set up the parameters for video info string Params = string.Format("-i {0}", input.Path); string output = RunProcess(Params); input.RawInfo = output; //get duration Regex re = new Regex("[D|d]uration:.((\\d|:|\\.)*)"); Match m = re.Match(input.RawInfo); if (m.Success) { string duration = m.Groups[1].Value; string[] timepieces = duration.Split(new char[] { ':', '.' }); if (timepieces.Length == 4) { input.Duration = new TimeSpan(0, Convert.ToInt16(timepieces[0]), Convert.ToInt16(timepieces[1]), Convert.ToInt16(timepieces[2]), Convert.ToInt16(timepieces[3])); } } } 

एफएफएमपीईजी परियोजना में एक उपकरण है, जिसे फफ़्रोब कहा जाता है जो आपको अपनी मल्टीमीडिया फ़ाइलों के बारे में जानकारी प्रदान कर सकता है और एक अच्छी तरह से तैयार किए गए जेएसओएन में जानकारी का इस्तेमाल कर सकता है।

एक उदाहरण के लिए इस उत्तर पर एक नज़र डालें।

मुझे NReco.VideoInfo लाइब्रेरी को सबसे अच्छा विकल्प मिल गया है और उनमें से कुछ की तुलना में कहीं ज्यादा आसान है। यह लाइब्रेरी को एक फ़ाइल पथ देने के रूप में सरल है और यह मेटाडाटा को बाहर कर देता है:

 var ffProbe = new FFProbe(); var videoInfo = ffProbe.GetMediaInfo(blob.Uri.AbsoluteUri); return videoInfo.Duration.TotalMilliseconds; 

विंडोज मीडिया प्लेयर घटक का उपयोग करके, हम वीडियो की अवधि भी प्राप्त कर सकते हैं।
निम्नलिखित कोड स्निपेट आपको लोगों की सहायता कर सकते हैं:

 using WMPLib; // ... var player = new WindowsMediaPlayer(); var clip = player.newMedia(filePath); Console.WriteLine(TimeSpan.FromSeconds(clip.duration)); 

और wmp.dll के संदर्भ को जोड़ने के लिए मत भूलना जो कि System32 फ़ोल्डर में मौजूद होगा।

 StreamReader errorreader; string InterviewID = txtToolsInterviewID.Text; Process ffmpeg = new Process(); ffmpeg.StartInfo.UseShellExecute = false; ffmpeg.StartInfo.ErrorDialog = false; ffmpeg.StartInfo.RedirectStandardError = true; ffmpeg.StartInfo.FileName = Server.MapPath("ffmpeg.exe"); ffmpeg.StartInfo.Arguments = "-i " + Server.MapPath("videos") + "\\226.flv"; ffmpeg.Start(); errorreader = ffmpeg.StandardError; ffmpeg.WaitForExit(); string result = errorreader.ReadToEnd(); string duration = result.Substring(result.IndexOf("Duration: ") + ("Duration: ").Length, ("00:00:00.00").Length);