Medya oynatma süresini gstreamer ile nasıl bulurum?Gstreamer ile medya uzunluğunu nasıl bulabilirim?
cevap
İşte gstreamer'ın çözebileceği herhangi bir şeyin süresini almak için basit bir Python betiği. Gstreamer'daki tüm zamanların nanosaniye cinsinden olduğunu unutmayın.
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
Örnekler:
$ python duration.py VIDEO_TS/VTS_03_1.VOB
0:20:10.528000
$ python duration.py ~/Movies/BigBuckBunny_640x360.m4v
0:09:56.461667
bakınız Bölüm 6.5.
http://majorsilence.com/pygtk_audio_and_video_playback_gstreamer
O bir boru hattı oluşturmak ve manuel olarak çalıştırmaya gerek kalmaz.
Bu yazıdan temel fikrini yazınınıza ekleyebilir misiniz? Link sadece cevaplar zamanla çürümeye eğilimlidir. (Bu bağlantı zaten 404'tür) – ComputerDruid
Neden tekerleği yeniden icat ediyorsunuz?
Kullanım:
gst-kaşifi-1.0 dosya adı
veya
gst-kaşifi-0.10 dosya
Eklemek istediğiniz olabilir Dosya türüne bağlı olarak "| grep Süresi" uzun olabilir etiketleri önlemek için .
Video, flac ve mp3 dosyaları için yabancı etiketlerin atlatılması için bu, bunları dışarıda tutmak için grep kullanarak aldatıcı olmalıdır.
gst-discoverer-1.0 filename | grep -v Tags | grep -v ID3v2 | grep -v image | grep -v attachment
- 1. Kendo dataSource uzunluğunu nasıl bulabilirim?
- 2. Belirli bir GArray'in uzunluğunu nasıl bulabilirim?
- 3. Gstreamer
- 4. NCalc yerleşik işlevlerini kullanarak bir sayının uzunluğunu nasıl bulabilirim?
- 5. Gstreamer ile ham char * tamponu nasıl oynanır?
- 6. Oturum uzunluğunu Devise ile ayarlama
- 7. Sequelize.STRING uzunluğunu nasıl tanımlarım?
- 8. Gstreamer - oynatılmıyor mpeg ts ile vaapidecode
- 9. Streaming PulseAudio dosyasına (muhtemelen GStreamer ile)
- 10. Gstreamer RTSP Sunucu
- 11. Qt 5.6 + multimedya + gstreamer
- 12. GStreamer videotestsrc RTP için
- 13. Medya yürütücü bittiğinde yüzey tutucu nasıl temizlenmeli?
- 14. Videoyu WebTime GStreamer kullanarak dönüştürme
- 15. Listede Linq ile nesneyi nasıl bulabilirim?
- 16. iki gstreamer boru hattını birleştirin
- 17. Django - FileField uzunluğunu artır
- 18. Medya eki listesi nasıl açılır?
- 19. Medya birimi nasıl kontrol edilir?
- 20. Yalnızca bir öğe ile bir numpy dizisinin uzunluğunu nasıl algılar?
- 21. Gstreamer kullanarak akış içeriği yürütme
- 22. Gstreamer: mk4 kodlaması Matroska videosu
- 23. Google Vision API ile Medya Kaydedici
- 24. medya sorguları?
- 25. Bağlantı URL'sini bağlantı metni ile nasıl XPath ile bulabilirim?
- 26. 'Adlandırılmış' dizinin uzunluğunu alma?
- 27. IPython geçmişi uzunluğunu artırın
- 28. Ortalama dize uzunluğunu mysql cinsinden nasıl alabilirim?
- 29. GStreamer kullanarak bir .mkv dosyasından altyazı nasıl çıkarılır?
- 30. Medya öğesi evrensel uygulamada çalışmak nasıl?
Benim için akışın toplam süresinden daha azını verir. Örneğin, 83 saniyelik bir MKV video için 880ms döndürür. Belki meta verilerle ilgili bir sorun mu var? Diğer oyuncular dosyayı doğru oynarlar ve MKV'nin kendisi de aynı gstreamer sürümüyle üretilir. – fviktor