मुझे gstreamer के साथ मीडिया के प्लेबैक समय को कैसे मिल सकता है?मुझे gstreamer के साथ मीडिया की लंबाई कैसे मिल सकती है?
उत्तर
कुछ भी gstreamer डीकोड की अवधि प्राप्त करने के लिए यहां एक साधारण पायथन स्क्रिप्ट है। ध्यान दें कि gstreamer में हर बार nanoseconds में हैं।
duration.py:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import division
import sys
import gobject
gobject.threads_init()
import pygst
pygst.require("0.10")
import gst
d = gst.parse_launch("filesrc name=source ! decodebin2 ! fakesink")
source = d.get_by_name("source")
source.set_property("location", sys.argv[1])
d.set_state(gst.STATE_PLAYING)
d.get_state()
format = gst.Format(gst.FORMAT_TIME)
duration = d.query_duration(format)[0]
d.set_state(gst.STATE_NULL)
import datetime
delta = datetime.timedelta(seconds=(duration/gst.SECOND))
print delta
उदाहरण:
$ python duration.py VIDEO_TS/VTS_03_1.VOB
0:20:10.528000
$ python duration.py ~/Movies/BigBuckBunny_640x360.m4v
0:09:56.461667
धारा 6.5 देखें।
http://majorsilence.com/pygtk_audio_and_video_playback_gstreamer
यह एक पाइप लाइन बना सकते हैं और इसे मैन्युअल रूप से चलाने की जरूरत से बचा जाता है।
क्या आप इस लेख से अपनी पोस्ट में मूल विचार शामिल कर सकते हैं? लिंक केवल समय के साथ सड़ने के लिए जवाब देते हैं। (यह लिंक पहले से ही 404 है) – ComputerDruid
पहिया का पुनः आविष्कार क्यों किया?
उपयोग:
जीएसटी-आविष्कारक-1.0 फ़ाइल नाम
या
जीएसटी-आविष्कारक-0.10 फ़ाइल नाम
फ़ाइल प्रकार आप जोड़ना चाहते हैं पर निर्भर करता है "| ग्रेप अवधि" टैग जो लंबा हो सकता है से बचने के लिए ।
वीडियो, flac और एमपी 3 फ़ाइलों के लिए अपर्याप्त टैग की छेड़छाड़ के लिए यह उन्हें बाहर करने के लिए grep का उपयोग करके चाल करना चाहिए।
gst-discoverer-1.0 filename | grep -v Tags | grep -v ID3v2 | grep -v image | grep -v attachment
यह मेरे लिए धारा की कुल अवधि से कम देता है। यह 83 सेकंड एमकेवी वीडियो के लिए 880ms देता है, उदाहरण के लिए। शायद मेटाडेटा के साथ एक समस्या है? अन्य खिलाड़ी फ़ाइल को सही तरीके से खेलते हैं और एमकेवी स्वयं जीस्ट्रीमर के उसी संस्करण द्वारा उत्पादित होता है। – fviktor