RTMPDump es un proyecto de software gratuito dedicado a desarrollar 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 clientes normales de reproductores de video Flash , capturar la transmisión de 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 transmisionesrtmpsuck
También se puede utilizar para capturar secuencias, pero se puede utilizar para detectar parámetros que se utilizarán con rtmpdump
[1] [2]Ha sido revisado como "una excelente utilidad para grabar transmisiones de televisión 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 desarrollo de medios. [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 "puede usarse" para infringir los derechos de autor, sin reclamar un uso real. [5] A partir de 2009, SourceForge había eliminado los archivos del proyecto, mostrando 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. Una transmisión bajo demanda 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
: ruta de reproducción (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 anteriores suelen ser los únicos elementos (o "conmutadores") que son esenciales para una conexión, si el servidor no utiliza ni el túnel ni el cifrado. Aunque en la práctica pueden encontrarse otros elementos, normalmente no son esenciales.
Por lo tanto, los siguientes elementos suelen ser enviados por 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 en él en el orden mostrado anteriormente, ya que la secuencia en la que el servidor RTMP recibe sus partes 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 normalmente significa que caducarán si se inicia una nueva sesión, no literalmente en cada intento de reanudar una conexión), sino en el otros elementos no suelen variar de una sesión a otra.
La línea de comando suele ser la anterior, excepto que el elemento -a
(o --app
) contiene las siguientes partes:
aifp
: Por ejemplo,aifp=v001
Por lo tanto, la aplicación de software del cliente suele enviar los siguientes elementos, [9] como una única línea de comando:
program.exe -r rtmp://xxxxxxx.edgefcs.net -a ondemand?auth = datos & aifp = datos & slist = datos -y mp3:URL/nombre de archivo -o file_mp3.flv
Las partes que componen el elemento -a
(o --app
) deben incorporarse en él en el orden mostrado anteriormente, ya que la secuencia en la que el servidor RTMP recibe sus partes 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, se reinicia la computadora, no literalmente en cada intento de reanudar una conexión). Las demás partes no suelen variar de una sesión a otra.
Nota : lo anterior describe la forma simplificada, mediante la cual la transmisión se guarda primero en el disco duro del usuario para reproducirse posteriormente en un reproductor multimedia capaz de reproducir un archivo codificado FLV (codificación H.263 o H.264), como Jugador GOM . Si, en cambio, se desea reproducir la transmisión directamente desde el servidor RTMP, brindando así una reproducción inmediata, se necesitarán elementos adicionales en la línea de comando, 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 W mayúscula. Esta es la dirección URL del reproductor SWF utilizado para reproducir la transmisión, tal 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 comando para un servidor Akamai suele ser la misma que para una transmisión bajo demanda 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 de lista contiene dos o más transmisiones alternativas (es decir, ofrece una selección de transmisiones con velocidades de bits alternativas), el elemento de ruta de reproducción ( o ) especifica la elegida por el usuario, como elemento identificador.--playpath
-y
Por lo tanto, la aplicación de software del cliente suele enviar la siguiente secuencia, [9] como una única línea de comando:
rtmpdump.exe --live -r rtmp://xxxxxxx.live.edgefcs.net -a live?auth = datos & aifp = datos & slist = datos --playpath { identificador } ?auth = datos & aifp = datos & 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 este último 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 adopta la siguiente forma:
-y xxxxx_x_@xxxx?auth=[62 characters]&aifp=v001&slist=xxxxx_x_@xxxx,xxxxx_x_@xxxx