Wie kann ich Stream-Videos mit dem RTMP-Protokoll herunterladen? Genauer gesagt von Harvard Extension


24

Ich habe Probleme beim Herunterladen von Videovorträgen von der Harvard Extension School. Ich hatte gehofft, ich könnte CS171 nehmen, musste aber sehr viel Zeit darauf warten, endlos gepuffert zu werden. Daher möchte ich einen Weg finden, die Vorträge herunterzuladen und vor Ort anzusehen.

Daher habe ich versucht, den Quellcode der Seite anzuzeigen (nehmen Sie zum Beispiel die erste Vorlesung ). Dabei stellte ich fest, dass der FlashViewer mit einer XML-URL verknüpft ist. Ich folgte dem Link und stellte fest, dass sich zwischen den "rtmp" -Tags ein Link zu einer mp4-Datei befand: "rtmp: //flash.dce.harvard.edu/bounce/mp4: 2012/02/22872 / L01 / 22872-20120124 -L01-1-h264-av1248-16x9-852x480.mp4 "und ich glaubte, das war es, die Datei, nach der ich gesucht hatte.

Dann kommt das Problem beim Herunterladen. Ich habe eine umfangreiche Suche durchgeführt und es mehrmals versucht. Keiner hat funktioniert.

Eine Möglichkeit, die ich versuchte, war zu rennen

    $ wget rtmp: //flash.dce.harvard.edu/bounce/mp4: 2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4

auf meinem Ubuntu, mit einer Antwort von

    rtmp: //flash.dce.harvard.edu/bounce/mp4: 2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4: Nicht unterstütztes Schema `rtmp '.

Ich bin mir nicht sicher, was das bedeutet ...

Ich habe auch rtmpdump ausprobiert, das über apt-get erworben wurde. Und wenn ich renne

    $ rtmpdump -r rtmp: //flash.dce.harvard.edu/bounce/mp4: 2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4 -o lecture1.mp4

Ich bekomme

    RTMPDump v2.4
    (c) 2010 Andrej Stepanchuk, Howard Chu, Das Flvstreamer-Team; Lizenz: GPL
    Verbindung wird hergestellt ...
    INFO: Verbunden ...
    FEHLER: Verbindung wird geschlossen: NetStream.Play.Failed

Ich weiß auch nicht, was NetStrem.Play.Failed bedeutet ...

Dann bin ich auf Stack Overflow gestoßen , mit den Vorschlägen , mplayer und vlc zu verwenden:

    $ mplayer -dumpstream rtmp: //flash.dce.harvard.edu/bounce/mp4: 2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4

zurück bekommen

    MPlayer svn r34540 (Ubuntu), erstellt mit gcc-4.7 (C) 2000-2012 MPlayer Team
    mplayer: Konnte keine Verbindung zum Socket herstellen
    mplayer: Keine solche Datei oder Verzeichnis
    Fehler beim Öffnen der LIRC-Unterstützung. Sie können Ihre Fernbedienung nicht verwenden.

    Spielen von rtmp: //flash.dce.harvard.edu/bounce/mp4: 2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4.
    libavformat Version 53.21.0 (extern)
    Nicht übereinstimmende Header-Version 53.19.0
    Verwenden von Netzwerkprotokollen ohne globale Netzwerkinitialisierung. Bitte verwenden Sie avformat_network_init (), dies wird später obligatorisch.
    Verwenden von Netzwerkprotokollen ohne globale Netzwerkinitialisierung. Bitte verwenden Sie avformat_network_init (), dies wird später obligatorisch.
    [rtmp @ 0x7f3de47abc00] Serverfehler: Lesezugriff für Stream 2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4 verweigert.
    Rtmp: //flash.dce.harvard.edu/bounce/mp4: 2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4 konnte nicht geöffnet werden.


    Beenden ... (Dateiende)

und

    $ vlc -I Dummy vlc -I Dummy --sout file / ts: output.mpg vlc: // quit

mit

    VLC Media Player 2.0.4 Twoflower (Revision 2.0.3-289-g6e6100a)
    [0xf0aed8] Dummy-Schnittstelle: Verwenden des Dummy-Schnittstellenmoduls ...
    Verwenden von Netzwerkprotokollen ohne globale Netzwerkinitialisierung. Bitte verwenden Sie avformat_network_init (), dies wird später obligatorisch.
    Verwenden von Netzwerkprotokollen ohne globale Netzwerkinitialisierung. Bitte verwenden Sie avformat_network_init (), dies wird später obligatorisch.
    [rtmp @ 0x7f6f28010a20] Serverfehler: Lesezugriff für Stream 2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4 verweigert.
    [0x7f6f28002d38] access_avio-Zugriffsfehler: rtmp: //flash.dce.harvard.edu/bounce/mp4: 2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480 konnte nicht geöffnet werden. mp4: Ein- / Ausgabefehler
    [0x7f6f20000b28] Haupteingabefehler: Öffnen von `rtmp: //flash.dce.harvard.edu/bounce/mp4: 2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480. mp4 ist fehlgeschlagen
    [0x7f6f20000b28] Haupteingabefehler: Ihre Eingabe kann nicht geöffnet werden
    [0x7f6f20000b28] Haupteingabefehler: VLC kann die MRL "rtmp: //flash.dce.harvard.edu/bounce/mp4: 2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248" nicht öffnen -16x9-852x480.mp4 '. Überprüfen Sie das Protokoll auf Details.
    [0x7f6f28002a08] idummy demux: befehl `quit '

In Beantwortung.

Ich habe auch versucht Orbit Download unter Windows mit null Freude. Der Download würde nicht einmal starten!

Würde mir jemand nett sagen, warum es so schwer ist, solche Dateien herunterzuladen und was diese Fehlermeldungen bedeuten? Und gibt es eine Möglichkeit, diese Vorträge vor Ort zu sehen?


Solange Sie das Video nicht verbreiten, sollte es fair sein, es IMHO
CSᵠ

Haben Sie die Antwort hier überprüft: stackoverflow.com/questions/4808322/…
d33pika

@godka haha ​​solange ich es herunterladen kann;

@d33pika eigentlich nein. rtmpdump scheint immer noch das mächtige Werkzeug zu sein. Ich denke , es bedeutet die Flagge ich damit zwicken nicht verfehlt , die Arbeit zu erledigen haben

Antworten:


15

Verwenden Sie RtmpSrv. Es wird mit rtmpdmp ab Version 21 gebündelt:

Ab 2.1 gibt es zwei zusätzliche Serverprogramme, rtmpsrv und rtmpsuck.

rtmpsrv ist ein Stub für einen Server. Es protokolliert die Verbindungs- und Wiedergabeparameter von einem regulären Client, der eine Verbindung zu ihm herstellt. Anschließend wird rtmpdump mit diesen Parametern aufgerufen, um den Stream abzurufen.

Verwendung

rtmpdump -r rtmp: //flash.dce.harvard.edu/bounce -CB: 0 -CZ: \
-CS: /2012/02/22872/L01/22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4 \
-CS: BounceAPI3.0 -CN: 0.000000 -CS: mp4 \
-y mp4: 2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4 \
-o a.flv
RTMPDump v2.4-84-gdd57cd0
(c) 2010 Andrej Stepanchuk, Howard Chu, Das Flvstreamer-Team; Lizenz: GPL
Verbindung wird hergestellt ...
INFO: Verbunden ...
Download ab: 0.000 kB
[...]
3322,127 kB / 22,03 s (0,3%)
  • -r- die URL des RTMP-Servers. Suchen Sie die URL im "connect" -Paket. ZB connect('22773_VOD_HOP_NEW_2013')bedeutet Ihre URL wirdrtmp://serveraddress/22773_VOD_HOP_NEW_2013

  • -y- den Speicherort der Datei und geben Sie den RTMP-Server Ihrer Videodatei ein. Fand es im "Play" -Paket.

  • -o- der Ausgabedateiname. Wenn es sich um einen mp4-Stream handelt, verwenden Sie eine .mp4-Erweiterung.


Sie sind mein Held! Ich war alle mit der -C-Flagge des Befehls rtmpdump beunruhigt. (Ich habe immer noch nicht verstanden, wie ich das optimieren soll, aber es funktioniert!)
alxyzc

4
Erklären Sie mir bitte, wozu alle Befehlszeilenoptionen dienen, da mir das nicht ganz klar ist
Ivo Flipse,

11

Verwenden Sie den VLC-Player , um einen rtmpStream herunterzuladen :

  1. Schritt: Wählen Sie Media > Convert/Save(oder verwenden Sie die Tastenkombination Ctrl+ R)
  2. Schritt: Wählen Sie die Registerkarte Network
  3. Schritt: Geben Sie den Rmtp-Stream-URI ein

    Bildbeschreibung hier eingeben

  4. Schritt: Zielpfad Convert/ -datei auswählen und eingeben
  5. Schritt: Los!

1

In Bezug auf die Rechtmäßigkeit, die von den vom Eigentümer festgelegten Einschränkungen abhängen würde. Aber ich würde annehmen, wenn es nur für den persönlichen Gebrauch wäre, wäre es kein großes Problem.

Zum Herunterladen sollten Sie VLC verwenden können . Ich habe es noch nie selbst ausprobiert, aber es listet Unterstützung für das RTMP-Protokoll auf und seine reguläre Konvertierungs- / Speicheroption sollte in der Lage sein, den Steam ohne Probleme in einer Datei zu speichern.


Ich habe das tatsächlich versucht, mit dem Ergebnis, dass VLC mich mit folgenden Your input can't be opened: VLC is unable to open the MRL 'rtmp://flash.dce.harvard.edu/bounce/mp4:2012/02/22872/L01/22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4'. Check the log for details.Worten angeschrien hat: Übrigens, wie überprüfe ich das Protokoll?
Alxyzc

@alxyzc Tools> Nachrichten. Möglicherweise möchten Sie die Ausführlichkeit erhöhen, um alle Debug-Meldungen anzuzeigen.
BDR9

1

Ich hatte Erfolg mit einigen RTMP-Streams, die das Programm youtube-dl verwendeten .

Es ist eine Befehlszeilenanwendung, die in Ihr aktuelles Verzeichnis heruntergeladen wird, wenn Sie keine Argumente übergeben. Bei RTMP-Streams übergebe ich normalerweise nur die Seiten-URL, anstatt zu versuchen, den RTMP-URI zu finden.

youtube-dl "http://domain/page-with-stream"

0

Streaming Video Downloader kann es - ich verwende es, um alle Kinder von Videos zu speichern. Habe es gerade mit deinem Harward-Vortrag versucht und es hat funktioniert. Es ist keine Freeware, aber es kann es.

Möglicherweise müssen Sie die Webseite ein paar Mal aktualisieren, damit das Video aufgenommen wird.

Offenlegung: Ich war Teil des Entwicklerteams für dieses Produkt.


0

Als Harvard-Student bin ich es gewohnt, Vorlesungen in 2x oder höher anzusehen (eine Gewohnheit von CS50), und es ist eine Sorge, dass Schulvideos von Extension diese Funktion nicht haben.

Ich habe festgestellt, dass Jaksta (Sie können wahrscheinlich ein kostenloses Exemplar online irgendwo finden) ziemlich erfolgreich Streaming-Vorträge im FLVFormat herunterlädt , die ich dann im VLC-Player mit jeder Geschwindigkeit nach Herzenslust ansehen kann.

Sobald ich die erste Vorlesung heruntergeladen habe, kann ich die nächsten Vorlesungen auf einem separaten Desktop herunterladen, während ich mir die erste ansehe. Ich habe diese Lösung gefunden, nachdem ich all diese Foren durchgesehen und nicht wirklich verstanden hatte, wie man die oben veröffentlichte RMTP-Lösung unter Mac OS implementiert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.