Jak znaleźć czas odtwarzania nośnika z gstreamerem?Jak znaleźć długość mediów z gstreamerem?
Odpowiedz
Oto prosty skrypt w języku Python, w którym można uzyskać informacje o czasie trwania dowolnej operacji dekodowania. Zauważ, że wszystkie czasy w gstreamerze są w nanosekundach.
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
Przykłady:
$ python duration.py VIDEO_TS/VTS_03_1.VOB
0:20:10.528000
$ python duration.py ~/Movies/BigBuckBunny_640x360.m4v
0:09:56.461667
patrz punkt 6.5.
http://majorsilence.com/pygtk_audio_and_video_playback_gstreamer
Unika potrzebę stworzenia rurociągu i uruchomić go ręcznie.
Czy możesz umieścić podstawowy pomysł z tego artykułu w swoim poście? Odpowiedzi dotyczące wyłącznie linków mają tendencję do gnicia w czasie. (ten link już jest 404) – ComputerDruid
Po co wynajdować koło?
Zastosowanie:
GST-odkrywca-1,0 filename
lub
GST-odkrywca-0,10 filename
W zależności od typu pliku może chcesz dodać „grep Czas trwania”, aby uniknąć znaczników, które mogą być zbyt długie .
Aby pozbyć się zbędnych znaczników dla plików wideo, flac i mp3, powinno to wystarczyć, używając grep, aby je wykluczyć.
gst-discoverer-1.0 filename | grep -v Tags | grep -v ID3v2 | grep -v image | grep -v attachment
- 1. jak znaleźć długość zestawu?
- 2. Jak znaleźć długość LPCSTR
- 3. Jak znaleźć długość literalnej tablicy?
- 4. Jak mogę znaleźć długość danej GArray?
- 5. Jak znaleźć długość argv [] w C
- 6. Jak znaleźć długość pliku audio (w sekundach)
- 7. Jak znaleźć długość niepodpisane char * w C
- 8. Jak debugować serwer mediów Mobicents
- 9. Jak otworzyć listę załączników mediów?
- 10. Angular2 animacje mediów odpytuje
- 11. Znaleźć długość ciągu liczby całkowitej w .NET
- 12. Jak znaleźć długość pakietu audio AAC-LC (nie ADTS)
- 13. C# - Jak znaleźć szerokość i długość geograficzną za pomocą C#
- 14. Jak znaleźć długość leniwej sekwencji bez wymuszania realizacji?
- 15. Jak znaleźć najdłuższą i najkrótszą długość wartości pola w mongoDb?
- 16. Jak korzystać z AVSampleBufferDisplayLayer w iOS 8 dla strumieni RTP H264 z GStreamerem?
- 17. Pobierz pojedynczy obraz z Biblioteki mediów Wordpress
- 18. Nie można przeglądać utworów z serwera mediów
- 19. Jak naśladować naciśnięcie klawiszy mediów w Javie?
- 20. Jak zdefiniować długość Sequelize.STRING?
- 21. Siła zapytania mediów należy stosować
- 22. iOS: Odbieranie mediów w tle
- 23. Czy klasa siatki mediów zniknęła z bootstrapu na Twitterze?
- 24. Jak odtwarzać pliki .ts (wideo/typ mediów MP2T) w przeglądarce?
- 25. Algorytm znaleźć długość najdłuższego przyrostka między ciąg i prefiks łańcucha
- 26. Jak uzyskać bieżącą długość odpowiedzi z http.ResponseWriter
- 27. Maks. Długość łańcucha Apache Długość osiągnęła
- 28. Jak uzyskać długość char **?
- 29. Jak zwiększyć długość tablicy
- 30. Jak uzyskać długość napisu?
Daje mi mniej niż łączny czas trwania strumienia. Zwraca on na przykład 880 ms na 83-sekundowy film MKV. Może problem z metadanymi? Inni gracze odtwarzają plik poprawnie, a sam MKV jest produkowany przez tę samą wersję gstreamer. – fviktor