¿Cómo puedo encontrar el tiempo de reproducción de los medios con gstreamer?¿Cómo puedo encontrar la longitud de los medios con gstreamer?
Respuesta
Aquí hay una secuencia de comandos de Python simple para obtener la duración de cualquier cosa que pueda decodificar gstreamer. Tenga en cuenta que todos los tiempos en gstreamer están en nanosegundos.
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
Ejemplos:
$ python duration.py VIDEO_TS/VTS_03_1.VOB
0:20:10.528000
$ python duration.py ~/Movies/BigBuckBunny_640x360.m4v
0:09:56.461667
, véase la Sección 6.5.
http://majorsilence.com/pygtk_audio_and_video_playback_gstreamer
Evita la necesidad de crear una tubería y ejecutarlo manualmente.
¿Puede incluir la idea básica de este artículo en su publicación? Las respuestas de enlace solo tienden a pudrirse con el tiempo. (este enlace ya es 404) – ComputerDruid
¿Por qué reinventar la rueda?
Uso:
GST-descubridor-1.0 nombre del archivo
o
GST-descubridor-0,10 nombre
Dependiendo del tipo de archivo que desea, puede añadir "| grep Duración" para evitar las etiquetas que pueden ser muy largo .
Para deshacerse de etiquetas superfluas para archivos de video, flac y mp3, esto debería funcionar usando grep para excluirlas.
gst-discoverer-1.0 filename | grep -v Tags | grep -v ID3v2 | grep -v image | grep -v attachment
- 1. ¿Qué es la sintaxis de gstreamer caps?
- 2. Cómo encontrar la longitud de un LPCSTR
- 3. ¿Cómo veo la salida de depuración gstreamer?
- 4. Cómo mostrar video de avi con gstreamer?
- 5. ¿Dónde puedo encontrar una lista de consultas de medios CSS3 para todos los dispositivos comunes?
- 6. Plugin GStreamer con GStreamermm (C++)
- 7. ¿Cómo controlar el volumen de los medios?
- 8. ¿Cómo encontrar la longitud de la matriz literal?
- 9. Encontrar la longitud de un archivo MP3
- 10. Cómo encontrar un horneq Longitud de cola
- 11. ¿Cómo encontrar la longitud de una clase de matriz?
- 12. ¿Cómo encontrar la longitud de un paquete de parámetros?
- 13. ¿Cómo puedo encontrar la latitud y la longitud desde la dirección?
- 14. ¿Cómo encontrar la longitud de una matriz de cadenas?
- 15. ¿Cómo puedo encontrar la longitud de la matriz "char *" en C?
- 16. ¿Cómo puedo encontrar la longitud de una cadena Unicode en Perl?
- 17. ¿Cómo encontrar la longitud de una lista de matriz?
- 18. ¿Cómo puedo encontrar la longitud (tamaño) de un blob binario en sqlite?
- 19. GStreamer: cómo conectar pads dinámicos
- 20. ¿Cómo puedo encontrar la longitud de una matriz asociativa en ActionScript 3.0?
- 21. ¿Cómo puedo encontrar la altura más grande de la celda de la tabla con jQuery?
- 22. Encontrar longitud de MP3 en C#
- 23. Streaming PulseAudio a archivo (posiblemente con GStreamer)
- 24. encontrar la "longitud de cadena" de un int
- 25. Encontrar la longitud de una grabación de audio en iPhone
- 26. Convertir video a WebM con GStreamer
- 27. Gstreamer - vaapidecode con mpeg ts sin jugar
- 28. GStreamer en Android
- 29. Gstreamer de python's gst.LinkError problema
- 30. ¿Manera eficiente de encontrar la longitud de enum de banderas?
Da menos de la duración total de la transmisión para mí. Devuelve 880ms para un video MKV de 83 segundos, por ejemplo. Tal vez un problema con los metadatos? Otros jugadores juegan el archivo correctamente y el MKV en sí mismo es producido por la misma versión de gstreamer. – fviktor