RTMPDump es un proyecto de software libre dedicado al desarrollo de un conjunto de herramientas para transmisiones RTMP . El paquete incluye tres programas, rtmpdump
, rtmpsrv
y rtmpsuck
.
rtmpdump
Se utiliza para conectarse a servidores RTMP como los clientes de reproductores de video Flash normales , capturar la transmisión desde la red y guardarla en un archivo. Con él, se pueden construir comandos utilizando información de conexión y autenticación obtenida previamente del servidor RTMP mediante rtmpsrv
.rtmpsrv
Se utiliza para ver conexiones y transmisiones.rtmpsuck
También se puede utilizar para capturar transmisiones, pero se puede utilizar para detectar parámetros que se utilizarán con rtmpdump
[1] [2]Se ha evaluado como "una excelente utilidad para grabar transmisiones de TV y video a pedido" [1] y se ha utilizado en investigaciones académicas sobre la selección de la velocidad de transmisión de video [3] y un marco de medios de desarrollo. [4] La utilidad se ha destacado por su pequeño tamaño y su capacidad para descifrar tecnologías de gestión de derechos digitales RTMPE (RTMP cifrado) y RTMPS (RTMP seguro) .
En una orden de cese y desistimiento de la Ley de Derechos de Autor del Milenio Digital de 2009 emitida contra SourceForge , Adobe Systems Inc. afirmó que "se puede utilizar" para infringir derechos de autor, sin reclamar el uso real. [5] A partir de 2009, SourceForge había eliminado los archivos del proyecto, proporcionando el mensaje "El proyecto especificado ha sido marcado como eliminado". [6] Desde noviembre de 2009 en adelante, el proyecto ha estado alojado como un repositorio Git en el sitio web de MPlayer , MplayerHQ.hu. [7]rtmpdump
Al negociar una conexión, un cliente RTMP envía y recibe un flujo de datos que contiene múltiples elementos, como una única línea de comando. Un flujo a pedido normalmente incluye los siguientes elementos: [8]
-r rtmp://
Dirección del servidor-a
:elementos de autenticación ( --app
se puede utilizar la alternativa en su lugar)application?as=data&av=data&te=data&mp=data&et=data&fmta-token=data
a1414/e3
as=adobe-hmac-sha256
av=1
te=connect
-y
: playpath (dirección URL del flujo de bits deseado, uno de los especificados en mp arriba)mp3:path/filename.mp3
mp4:path/filename.mp4
-o
:Nombre del archivo de salidaLos elementos anteriores suelen ser los únicos (o "interruptores") que son esenciales para una conexión, si el servidor no utiliza ni la tunelización ni el cifrado. Aunque en la práctica se pueden encontrar otros elementos, normalmente no son esenciales.
Por lo tanto, los siguientes elementos suelen enviarse mediante la aplicación de software cliente [9] , como una única línea de comando:
rtmpdump -r rtmp://xxxxxxxx.fcod.llnwd.net -a ruta?as = datos & av = datos & te = datos & mp = datos & et = datos & fmta-token = datos -y mp4:URL/nombre de archivo .mp4 -o archivo_mp4.flv
Las partes que componen el elemento -a
(o --app
) deben incorporarse al mismo en el orden mostrado anteriormente, ya que la secuencia en que sus partes son recibidas por el servidor RTMP es crítica.
Las cadenas de autenticación ( et=
y fmta-token=
) contienen información de la sesión, por lo que cambiarán en cada nueva conexión realizada al servidor (lo que en la práctica generalmente significa que expirarán si se inicia una nueva sesión, no literalmente en cada intento de reanudar una conexión), pero los otros elementos generalmente no variarán de una sesión a otra.
La línea de comando es típicamente como la anterior, excepto que el elemento -a
(o --app
) contiene las siguientes partes en su lugar:
aifp
: Por ejemplo,aifp=v001
Por lo tanto, la aplicación de software del cliente normalmente envía los siguientes elementos [9] como una única línea de comando:
programa.exe -r rtmp://xxxxxxx.edgefcs.net -a ondemand?auth = data & aifp = data & slist = data -y mp3:URL/nombre_archivo -o archivo_mp3.flv
Las partes que componen el elemento -a
(o --app
) deben incorporarse al mismo en el orden mostrado anteriormente, ya que la secuencia en que sus partes son recibidas por el servidor RTMP es crítica.
La cadena de autenticación ( auth=
) contiene información de la sesión, por lo que cambiará en cada nueva conexión realizada al servidor (normalmente, si se inicia una nueva sesión, por ejemplo, si se reinicia la computadora, no literalmente en cada intento de reanudar una conexión). Las otras partes normalmente no variarán de una sesión a otra.
Nota : lo anterior describe la forma simplificada, en la que la transmisión se guarda primero en el disco duro del usuario para luego reproducirse en un reproductor multimedia capaz de reproducir un archivo codificado FLV (codificación H.263 o H.264), como GOM Player . Si, en cambio, se desea reproducir la transmisión directamente desde el servidor RTMP, lo que permite una reproducción inmediata, se necesitarán elementos adicionales en la línea de comandos, incluidos:
-f
: Esto especifica la versión del complemento Flash instalado en la computadora del usuario. Por ejemplo, -f "WIN 9,0,260,0"
indicaría que el usuario tiene la versión de Windows de Flash Player 9, versión 260.
-W
: El comando con W mayúscula. Esta es la dirección URL del reproductor SWF utilizado para reproducir la transmisión, como lo indica la página web de la que se deriva la transmisión. Por ejemplo, path/9player.swf?revision=18269_21576
.
La línea de comandos para un servidor Akamai es típicamente la misma que para una transmisión a pedido de Akamai. Pero el elemento -a
(o --app
) contiene las siguientes partes
aifp
: Por ejemplo,aifp=v001
Radio_7_Int@6463
Nota : si la cadena slist contiene dos o más transmisiones alternativas (es decir, ofrece una selección de transmisiones a velocidades de bits alternativas), el elemento playpath ( o ) especifica la elegida por el usuario, como el elemento identificador.--playpath
-y
Por lo tanto, la siguiente secuencia normalmente la envía la aplicación de software del cliente [9] como una única línea de comando:
rtmpdump.exe --live -r rtmp://xxxxxxx.live.edgefcs.net -a live?auth = datos y aifp = datos y slist = datos --playpath { identificador } ?auth = datos y aifp = datos y slist = datos -o salida.flv
Todos estos elementos son obligatorios y deben incluirse en el orden que se muestra arriba. La cadena que sigue al ?
(signo de interrogación) en los elementos -a
y --playpath
normalmente será idéntica. El elemento identificador normalmente será un subconjunto de los datos de la lista (si esta última ofrece una opción), de lo contrario también serán idénticos. El -o
elemento puede especificar un nombre de archivo de salida elegido por el usuario.
No es necesario especificar la ruta de reproducción completa , ya que la aplicación cliente construye ese elemento en la memoria. Normalmente, en la memoria tiene el siguiente formato:
-y xxxxx_x_@xxxx?auth=[62 characters]&aifp=v001&slist=xxxxx_x_@xxxx,xxxxx_x_@xxxx