如何使用gstreamer找到媒體的播放時間?如何用gstreamer找到媒體的長度?
12
A
回答
17
下面是一個簡單的Python腳本來獲取任何gstreamer可以解碼的時間。請注意,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
2
+1
你能在你的文章中包含這篇文章的基本想法嗎?鏈接只有答案傾向於隨着時間的推移而腐爛(這個鏈接已經是404) – ComputerDruid 2015-07-24 17:35:24
0
爲什麼重新發明輪子?
用途:
GST-發現者-1.0文件名
或
GST-發現者 - 0.10名
根據您可能要添加的文件類型「| grep的持續時間」,以避免可能會很長的標籤。
爲了消除視頻,flac和mp3文件的無關標籤,這應該通過使用grep來排除它們。
gst-discoverer-1.0 filename | grep -v Tags | grep -v ID3v2 | grep -v image | grep -v attachment
相關問題
- 1. 流媒體長度
- 2. Gstreamer中的Adtive流媒體
- 3. 如何找到使用相機的物體長度的Android
- 4. UIWebView - 如何找到長度
- 5. 找到具體長度的循環
- 6. 如何使用gstreamer製作流媒體中繼?
- 7. 媒體查詢邊框長度
- 8. GStreamer,流媒體和同時拍攝
- 9. OpenCV和Gstreamer流媒體直播視頻
- 10. 如何找到一個LPCSTR的長度
- 11. 如何找到文件名的長度?
- 12. 如何找到字典值的長度
- 13. 如何找到itertools.izip_longest的長度
- 14. 如何找到輸入的長度
- 15. 如何找到一組的長度?
- 16. 如何找到JSON的長度?
- 17. Java - AAC MP4 - 如何獲得媒體長度?
- 18. 的GStreamer流媒體視頻到公網IP地址
- 19. Django媒體URL找不到
- 20. 如何找到最小長度
- 21. Umbraco的NivoSlider - 媒體庫找不到媒體類型
- 22. 如何找到字體的寬度?
- 23. 如何從dxf文件中使用dxfgrabber或ezdxf包找到實體的長度
- 24. 找到分區的長度
- 25. 更快版本長度的(找到()),用於從載體(MATLAB)
- 26. 網絡攝像頭流媒體使用的GStreamer通過UDP
- 27. 如何找到最長的字符串長度節點值
- 28. 的GStreamer x264enc沒有找到
- 29. Qt的多媒體:找不到-lpulse
- 30. org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException:找不到媒體的MessageBodyWriter
它給出比我的流的總持續時間少。例如,它爲83秒的MKV視頻返回880ms。也許元數據有問題?其他玩家正確播放該文件,MKV本身由相同版本的gstreamer生成。 – fviktor 2011-11-24 01:05:24