python मैं gstreamer के साथ मीडिया की लंबाई कैसे प्राप्त करूं?




video media (3)

यहां एक सामान्य पायथन स्क्रिप्ट है जो कुछ भी जीस्ट्रीमर डीकोड कर सकती है। नोट करें कि gstreamer में सभी बार नैनोसेकंड्स में हैं

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

मैं gstreamer के साथ मीडिया के प्लेबैक समय को कैसे प्राप्त करूं?


क्यों पहिया फिर से आविष्कार?
उपयोग:
gst-discoverer-1.0 फ़ाइल नाम
या
gst-discoverer-0.10 फ़ाइल नाम

फ़ाइल प्रकार के आधार पर आप टैग को टालने के लिए "। Grep अवधि" को जोड़ना चाह सकते हैं जो लंबा हो सकता है
वीडियो, फ्लेक और एमपी 3 फाइलों के लिए बाहरी टैगों को हटाने के लिए यह उन्हें बाहर करने के लिए grep का उपयोग करके चाल करना चाहिए।
gst-discoverer-1.0 filename | grep -v Tags | grep -v ID3v2 | grep -v image | grep -v attachment








gstreamer