Come posso scaricare video in streaming con protocollo rtmp? Dall'estensione Harvard, più specificamente


24

Ho avuto problemi con il download di lezioni video dalla Harvard Extension School. Speravo di poter prendere CS171, ma mi sono ritrovato a dover passare molto tempo ad aspettare un buffering senza fine. Quindi desidero trovare un modo per scaricare le lezioni e guardarle localmente.

Quindi ho provato a visualizzare il codice sorgente della pagina (prendi ad esempio la prima lezione ), ho scoperto che FlashViewer è collegato con un URL XML. Ho seguito il collegamento e ho scoperto che tra i tag "rtmp" c'era un collegamento a un file mp4: "rtmp: //flash.dce.harvard.edu/bounce/mp4: 2012/02/22872 / L01 / 22872-20120124 -L01-1-h264-av1248-16x9-852x480.mp4 "e credevo che fosse tutto, il file che stavo cercando.

Quindi arriva il problema con il download. Ho eseguito una vasta ricerca e ho provato più volte. Nessuno ha funzionato.

Un modo in cui ho provato era in esecuzione

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

sul mio Ubuntu, con una risposta di

    rtmp: //flash.dce.harvard.edu/bounce/mp4: 2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4: schema non supportato `rtmp '.

Non sono sicuro di cosa significhi ...

Ho anche provato rtmpdump, acquisito tramite apt-get. E quando corro

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

ottengo

    RTMPDump v2.4
    (c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; licenza: GPL
    Connessione in corso ...
    INFO: connesso ...
    ERRORE: connessione di chiusura: NetStream.Play.Failed

Non so cosa significhi NetStrem.Play.Failed ...

Poi ho incontrato lo stack overflow, con i suggerimenti di usare mplayer e vlc, ho eseguito rispettivamente:

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

tornato

    MPlayer svn r34540 (Ubuntu), costruito con gcc-4.7 (C) 2000-2012 MPlayer Team
    mplayer: impossibile connettersi alla presa
    mplayer: nessun file o directory
    Impossibile aprire il supporto LIRC. Non sarà possibile utilizzare il telecomando.

    Riproduzione rtmp: //flash.dce.harvard.edu/bounce/mp4: 2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4.
    libavformat versione 53.21.0 (esterna)
    Versione dell'intestazione non corrispondente 53.19.0
    Utilizzo dei protocolli di rete senza inizializzazione di rete globale. Si prega di utilizzare avformat_network_init (), questo diventerà obbligatorio in seguito.
    Utilizzo dei protocolli di rete senza inizializzazione di rete globale. Si prega di utilizzare avformat_network_init (), questo diventerà obbligatorio in seguito.
    [rtmp @ 0x7f3de47abc00] Errore del server: accesso in lettura negato per il flusso 2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4.
    Impossibile aprire rtmp: //flash.dce.harvard.edu/bounce/mp4: 2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4.


    Uscita in corso ... (Fine del file)

e

    $ vlc -I dummy vlc -I dummy rtmp: //flash.dce.harvard.edu/bounce/mp4: 2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4 --sout file / ts: output.mpg vlc: // quit

con

    VLC media player 2.0.4 Twoflower (revisione 2.0.3-289-g6e6100a)
    [0xf0aed8] interfaccia fittizia: utilizzo del modulo interfaccia fittizia ...
    Utilizzo dei protocolli di rete senza inizializzazione di rete globale. Si prega di utilizzare avformat_network_init (), questo diventerà obbligatorio in seguito.
    Utilizzo dei protocolli di rete senza inizializzazione di rete globale. Si prega di utilizzare avformat_network_init (), questo diventerà obbligatorio in seguito.
    [rtmp @ 0x7f6f28010a20] Errore del server: accesso in lettura negato per il flusso 2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480.mp4.
    [0x7f6f28002d38] errore di accesso access_avio: impossibile aprire rtmp: //flash.dce.harvard.edu/bounce/mp4: 2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480. mp4: errore di input / output
    [0x7f6f20000b28] errore di input principale: aperto di `rtmp: //flash.dce.harvard.edu/bounce/mp4: 2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248-16x9-852x480. mp4 'non riuscito
    [0x7f6f20000b28] errore di input principale: l'input non può essere aperto
    [0x7f6f20000b28] errore di input principale: VLC non è in grado di aprire l'MRL 'rtmp: //flash.dce.harvard.edu/bounce/mp4: 2012/02/22872 / L01 / 22872-20120124-L01-1-h264-av1248 -16x9-852x480.mp4' . Controlla il registro per i dettagli.
    [0x7f6f28002a08] demux idummy: comando `esci '

in risposta.

Ho anche provato Orbit Download su Windows con gioia zero. Il download non sarebbe nemmeno iniziato!

Qualcuno potrebbe dirmi bene perché è così difficile scaricare questo tipo di file e cosa significano quei messaggi di errore? E c'è un modo in cui posso guardare quelle lezioni a livello locale?


fintanto che non distribuisci il video, dovresti essere in grado di scaricarlo IMHO
CSᵠ

Hai controllato la risposta qui: stackoverflow.com/questions/4808322/...
d33pika

@godka haha ​​finché riesco effettivamente a scaricarlo;

@ d33pika attualmente no. sembra che rtmpdump sia ancora il potente strumento. penso che siano le bandiere con cui non sono riuscito a modificare che non hanno portato a termine il lavoro

Risposte:


15

Usa RtmpSrv. È in bundle con rtmpdmp v.21 in poi:

A partire da 2.1 ci sono due programmi server aggiuntivi, rtmpsrv e rtmpsuck.

rtmpsrv è uno stub per un server; registra i parametri di connessione e riproduzione da un normale client che si connette ad esso. Quindi richiama rtmpdump con quei parametri per recuperare il flusso.

uso

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, The Flvstreamer Team; licenza: GPL
Connessione in corso ...
INFO: connesso ...
Avvio download a: 0.000 kB
[...]
3322.127 kB / 22,03 sec (0,3%)
  • -r- l'URL del server rtmp. Trova l'URL nel pacchetto "Connetti". Ad esempio connect('22773_VOD_HOP_NEW_2013'), il tuo URL saràrtmp://serveraddress/22773_VOD_HOP_NEW_2013

  • -y- la posizione del file e digitare il server rtmp del file video. L'ho trovato nel pacchetto "play".

  • -o- il nome del file di output. Se è un flusso mp4, usa un'estensione .mp4.


Tu sei il mio eroe! Ero tutto turbato dalla bandiera -C del comando rtmpdump. (Non riesco ancora a capire come dovrei modificarlo, ma funziona!)
alxyzc

4
Cerca di spiegare a cosa servono tutte le opzioni della riga di comando, perché non mi è esattamente chiaro
Ivo Flipse,

11

Utilizzare il lettore VLC per scaricare uno rtmpstream:

  1. Passaggio: scegli Media > Convert/Save(o utilizza la scorciatoia Ctrl+ R)
  2. Passaggio: selezionare la scheda Network
  3. Passaggio: immettere l'URI del flusso rmtp

    inserisci qui la descrizione dell'immagine

  4. Passaggio: selezionare Converte immettere il percorso / file di destinazione
  5. Step: Vai!

1

Per quanto riguarda la legalità che dipenderebbe dalle restrizioni stabilite dal proprietario. Ma suppongo che se fosse solo per uso personale non ci sarebbero molti problemi.

Per quanto riguarda il download, dovresti essere in grado di utilizzare VLC . Non l'ho mai provato da solo, ma elenca il supporto per il protocollo RTMP e la sua normale opzione di conversione / salvataggio dovrebbe essere in grado di salvare il vapore in un file senza alcun problema.


L'ho provato in realtà, con il risultato di VLC che mi urlava con il seguente: a 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.proposito, come posso controllare il registro?
alxyzc,

@alxyzc Tools> Messaggi. Potresti voler aumentare la verbosità per vedere tutti i messaggi di debug.
bdr9,

1

Ho avuto successo con alcuni stream RTMP usando il programma youtube-dl .

Si tratta di un'applicazione da riga di comando che verrà scaricata nella directory corrente se non si passa alcun argomento. Con gli stream RTMP, di solito gli passo semplicemente l'URL della pagina, piuttosto che cercare di individuare l'URI RTMP.

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

0

Streaming Video Downloader può farlo: lo uso per salvare tutti i bambini di video. L'ho appena provato con la tua lezione di Harward e ha funzionato. Non è freeware ma può farlo.

Potrebbe essere necessario aggiornare la pagina Web un paio di volte, tuttavia, affinché il video venga ripreso.

Divulgazione: facevo parte del team di sviluppo di questo prodotto.


0

Come studente universitario di Harvard, sono abituato a guardare lezioni in 2x o superiore (un'abitudine da CS50), ed è un problema che i video delle scuole di estensione non abbiano questa funzione.

Ho scoperto che Jaksta (probabilmente ne puoi trovare una copia gratuita online da qualche parte) scarica abbastanza correttamente le lezioni di streaming in FLVformato, che posso quindi guardare nel lettore VLC a qualsiasi velocità per il contenuto del mio cuore.

Una volta scaricata la prima lezione, posso scaricare le lezioni successive in un desktop separato mentre guardo la prima. Ho trovato questa soluzione dopo aver esaminato tutti questi forum e non aver davvero capito come implementare su Mac OS la soluzione RMTP pubblicata sopra.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.