ffmpeg-protocollen - Online in de cloud

Dit is de opdracht ffmpeg-protocollen die kunnen worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

PROGRAMMA:

NAAM


ffmpeg-protocollen - FFmpeg-protocollen

PRODUCTBESCHRIJVING


Dit document beschrijft de invoer- en uitvoerprotocollen van het libavformat
bibliotheek.

PROTOCOLLEN


Protocollen zijn geconfigureerde elementen in FFmpeg die toegang mogelijk maken tot bronnen die nodig zijn
specifieke protocollen.

Wanneer u uw FFmpeg-build configureert, zijn alle ondersteunde protocollen standaard ingeschakeld.
U kunt alle beschikbare protocollen weergeven met behulp van de configuratieoptie "--list-protocols".

U kunt alle protocollen uitschakelen met de configuratieoptie "--disable-protocols", en
selectief een protocol inschakelen met de optie "--enable-protocol=PROTOCOL", of je kan
schakel een bepaald protocol uit met de optie "--disable-protocol=PROTOCOL".

De optie "-protocollen" van de ff*-tools zal de lijst met ondersteunde protocollen weergeven.

Een beschrijving van de momenteel beschikbare protocollen volgt.

async
Asynchrone gegevensvulverpakking voor invoerstroom.

Vul gegevens in een achtergrondthread om de I/O-bewerking los te koppelen van demux-thread.

asynchroon:
asynchroon:http://host/resource
asynchroon:cache:http://host/resource

bluray
Lees BluRay-afspeellijst.

De geaccepteerde opties zijn:

hoek
BluRay-hoek

hoofdstuk
Begin hoofdstuk (1...N)

afspeellijst
Afspeellijst om te lezen (BDMV/PLAYLIST/?????.mpls)

Voorbeelden:

Lees de langste afspeellijst van BluRay gekoppeld aan /mnt/bluray:

bluray:/mnt/bluray

Lees hoek 2 van afspeellijst 4 van BluRay gemonteerd op /mnt/bluray, begin vanaf hoofdstuk 2:

-afspeellijst 4 -hoek 2 -hoofdstuk 2 bluray:/mnt/bluray

cache
Caching-wrapper voor invoerstroom.

Cache de invoerstroom naar een tijdelijk bestand. Het biedt zoekmogelijkheden voor livestreams.

cache:

concat
Fysiek aaneenschakelingsprotocol.

Lees en zoek uit vele bronnen in volgorde alsof ze een unieke bron zijn.

Een URL die door dit protocol wordt geaccepteerd, heeft de volgende syntaxis:

concat: | |...|

met de meeste URL1, URL2, ..., URLN zijn de URL's van de bron die moet worden samengevoegd, elk
eventueel specificeren van een apart protocol.

Bijvoorbeeld om een ​​reeks bestanden te lezen split1.mpeg, split2.mpeg, split3.mpeg with ffplay
gebruik het commando:

ffplay concat:split1.mpeg\|split2.mpeg\|split3.mpeg

Houd er rekening mee dat u mogelijk het teken "|" moet escapen wat voor veel schelpen bijzonder is.

crypto
AES-gecodeerd stroomleesprotocol.

De geaccepteerde opties zijn:

sleutel Stel het binaire blok van de AES-decoderingssleutel in op basis van de gegeven hexadecimale weergave.

iv Stel het AES-decryptie-initialisatie vector binaire blok in vanaf gegeven hexadecimaal
vertegenwoordiging.

Geaccepteerde URL-indelingen:

cryptovaluta:
crypto+

gegevens
Gegevens inline in de URI. Zienhttp://en.wikipedia.org/wiki/Data_URI_scheme>.

Om bijvoorbeeld een GIF-bestand te converteren dat inline is gegeven met ffmpeg:

ffmpeg -i "data:image/gif;base64,R0lGODdhCAAIAMIEAAAAAAAA//8AAP//AP///////////////ywAAAAACAAIAAADF0gEDLojDgdGiJdJqUX02iB4E8Q9jUMkADs=" smiley.png

filet
Protocol voor bestandstoegang.

Lezen van of schrijven naar een bestand.

Een bestands-URL kan de vorm hebben:

bestand:

met de meeste bestandsnaam is het pad van het te lezen bestand.

Een URL die geen protocolvoorvoegsel heeft, wordt beschouwd als een bestands-URL. Afhankelijk van
de build, een URL die lijkt op een Windows-pad met de stationsletter aan het begin
wordt ook verondersteld een bestands-URL te zijn (meestal niet het geval in builds voor unix-achtige
systemen).

Bijvoorbeeld om uit een bestand te lezen invoer.mpeg with ffmpeg gebruik het commando:

ffmpeg -i bestand:input.mpeg output.mpeg

Dit protocol accepteert de volgende opties:

afkappen
Bestaande bestanden afkappen bij schrijven, indien ingesteld op 1. Een waarde van 0 voorkomt afkappen.
De standaardwaarde is 1.

blocksize
Stel de maximale blokgrootte van de I/O-bewerking in bytes in. De standaardwaarde is "INT_MAX", welke
resulteert in het niet beperken van de gevraagde blokgrootte. Deze waarde redelijk laag instellen
verbetert de reactietijd van gebruikersbeëindigingsverzoeken, wat waardevol is voor bestanden die traag zijn
medium.

ftp
FTP (protocol voor bestandsoverdracht).

Lezen van of schrijven naar bronnen op afstand met behulp van het FTP-protocol.

De volgende syntaxis is vereist.

ftp://[gebruiker[:wachtwoord]@]server[:poort]/pad/naar/remote/resource.mpeg

Dit protocol accepteert de volgende opties.

time-out
Stel een time-out in microseconden in voor socket I/O-bewerkingen die worden gebruikt door het onderliggende lage niveau
operatie. Standaard is deze ingesteld op -1, wat betekent dat de time-out niet is opgegeven.

ftp-anoniem-wachtwoord
Wachtwoord gebruikt bij inloggen als anonieme gebruiker. Normaal gesproken zou een e-mailadres moeten zijn
gebruikt.

ftp-schrijf-zoekbaar
Controleer de zoekbaarheid van de verbinding tijdens het coderen. Indien ingesteld op 1 is de bron
verondersteld zoekbaar te zijn, indien ingesteld op 0 wordt aangenomen dat het niet zoekbaar is. Standaardwaarde
is 0.

OPMERKING: Protocol kan als uitvoer worden gebruikt, maar het wordt aanbevolen om dit niet te doen, tenzij speciaal
zorgvuldigheid wordt betracht (tests, aangepaste serverconfiguratie enz.). Verschillende FTP-servers gedragen zich
op een andere manier tijdens het zoeken. ff* tools kunnen onvolledige inhoud produceren vanwege
serverbeperkingen.

gopher
Gopher-protocol.

hls
Lees Apple HTTP Live Streaming-compatibele gesegmenteerde stream als een uniforme stream. De M3U8
afspeellijsten die de segmenten beschrijven, kunnen externe HTTP-bronnen of lokale bestanden zijn
met behulp van het standaard bestandsprotocol. Het geneste protocol wordt gedeclareerd door "+daarom"
achter de hls URI-schemanaam, waar daarom is "bestand" of "http".

hls+http://host/path/to/remote/resource.m3u8
hls+bestand://path/to/local/resource.m3u8

Het gebruik van dit protocol wordt afgeraden - de hls demuxer zou net zo goed moeten werken (zo niet,
gelieve de problemen te melden) en is vollediger. Om in plaats daarvan de hls demuxer te gebruiken, eenvoudig
gebruik de directe URL's naar de m3u8-bestanden.

http
HTTP (HyperText Transfer Protocol).

Dit protocol accepteert de volgende opties:

doorzoekbaar
Controleer de zoekbaarheid van de verbinding. Indien ingesteld op 1, zou de bron moeten zijn
zoekbaar, indien ingesteld op 0 wordt aangenomen dat het niet zoekbaar is, indien ingesteld op -1 zal het proberen
automatisch detecteren of het zoekbaar is. De standaardwaarde is -1.

chunked_post
Indien ingesteld op 1, gebruik dan gesegmenteerde overdrachtscodering voor berichten, de standaardwaarde is 1.

inhoudstype
Stel een specifiek inhoudstype in voor de POST-berichten.

headers
Stel aangepaste HTTP-headers in, kunnen ingebouwde standaardheaders overschrijven. De waarde moet a zijn
tekenreeks die de headers codeert.

meerdere_verzoeken
Gebruik permanente verbindingen indien ingesteld op 1, standaard is 0.

post_data
Stel aangepaste HTTP-postgegevens in.

user agent
user_agent
Negeer de User-Agent-header. Als dit niet is opgegeven, gebruikt het protocol een tekenreeks
beschrijft de libavformat-build. ("Lavf/ ")

time-out
Stel een time-out in microseconden in voor socket I/O-bewerkingen die worden gebruikt door het onderliggende lage niveau
operatie. Standaard is deze ingesteld op -1, wat betekent dat de time-out niet is opgegeven.

mime type
Exporteer het MIME-type.

ijzig Indien ingesteld op 1, vraag dan ICY (SHOUTcast) metadata van de server. Als de server ondersteunt
hiervoor moeten de metadata worden opgehaald door de toepassing door het lezen van de
ijzige_metadata_headers en ijzig_metadata_pakket opties. De standaardwaarde is 1.

ijzige_metadata_headers
Als de server ICY-metadata ondersteunt, bevat deze het ICY-specifieke HTTP-antwoord
kopteksten, gescheiden door tekens voor een nieuwe regel.

ijzig_metadata_pakket
Als de server ICY-metadata ondersteunt, en ijzig op 1 stond, bevat dit de laatste niet-
leeg metadatapakket verzonden door de server. Het moet met regelmatige tussenpozen worden ondervraagd door
applicaties die geïnteresseerd zijn in mid-stream metadata-updates.

cookies
Stel de cookies in die bij toekomstige verzoeken moeten worden verzonden. Het formaat van elke cookie is hetzelfde
als de waarde van een Set-Cookie HTTP-antwoordveld. Meerdere cookies kunnen worden afgebakend door
een newline-teken.

compenseren
Stel de initiële byte-offset in.

eind_offset
Probeer het verzoek te beperken tot bytes voorafgaand aan deze offset.

methode
Bij gebruik als clientoptie stelt het de HTTP-methode voor het verzoek in.

Bij gebruik als serveroptie stelt het de HTTP-methode in waarvan verwacht wordt
de cliënten). Als de verwachte en de ontvangen HTTP-methode niet overeenkomen met de client
krijgt een Bad Request-antwoord. Indien uitgeschakeld wordt er niet gecontroleerd op de HTTP-methode
nu. Dit zal in de toekomst worden vervangen door autodetectie.

luisteren
Indien ingesteld op 1, wordt experimentele HTTP-server ingeschakeld. Dit kan worden gebruikt om gegevens te verzenden wanneer deze wordt gebruikt
als uitvoeroptie, of lees gegevens van een client met HTTP POST wanneer deze als invoer wordt gebruikt
keuze. Indien ingesteld op 2, wordt experimentele mutli-client HTTP-server ingeschakeld. Dit is het nog niet
geïmplementeerd in ffmpeg.c of ffserver.c en mag dus niet als opdrachtregel worden gebruikt
optie.

# Serverzijde (verzenden):
ffmpeg -i een bestand.ogg -c kopieer -luister 1 -f ogg http:// :

# Clientzijde (ontvangen):
ffmpeg -i http:// : -c kopieer een bestand.ogg

# Client kan ook met wget:
wget http:// : -O een bestand.ogg

# Serverzijde (ontvangen):
ffmpeg -luister 1 -i http:// : -c kopieer een bestand.ogg

# Clientzijde (verzenden):
ffmpeg -i een bestand.ogg -chunked_post 0 -c kopiëren -f ogg http:// :

# Client kan ook met wget:
wget --post-file=somefile.ogg http:// :

HTTP Cookies

Sommige HTTP-verzoeken worden geweigerd, tenzij cookiewaarden worden doorgegeven met het verzoek. De
cookies optie staat toe dat deze cookies worden opgegeven. Op zijn minst moet elk koekje
specificeer een waarde samen met een pad en domein. HTTP-verzoeken die overeenkomen met zowel het domein
en pad zal automatisch de cookiewaarde opnemen in het HTTP-cookiekopveld.
Meerdere cookies kunnen worden afgebakend door een nieuwe regel.

De vereiste syntaxis om een ​​stream af te spelen die een cookie specificeert, is:

ffplay -cookies "nlqptid=nltid=tsn; path=/; domain=somedomain.com;" http://somedomain.com/somestream.m3u8

IJscast
Icecast-protocol (stream naar Icecast-servers)

Dit protocol accepteert de volgende opties:

ijs_genre
Stel het streamgenre in.

ijs_naam
Stel de streamnaam in.

ijs_beschrijving
Stel de streambeschrijving in.

ijs_url
Stel de URL van de streamwebsite in.

ijs_openbaar
Stel in of de stream openbaar moet zijn. De standaardwaarde is 0 (niet openbaar).

user_agent
Negeer de User-Agent-header. Indien niet opgegeven, wordt een tekenreeks in de vorm "Lavf/ "
gebruikt.

wachtwoord
Stel het Icecast-mountpoint-wachtwoord in.

inhoudstype
Stel het type streaminhoud in. Dit moet worden ingesteld als het verschilt van audio/mpeg.

legacy_icecast
Dit maakt ondersteuning mogelijk voor Icecast-versies < 2.4.0, die de HTTP PUT niet ondersteunen
methode, maar de SOURCE-methode.

ijsschot://[ [: ]@] : /

mmst
MMS-protocol (Microsoft Media Server) via TCP.

mmsh
MMS-protocol (Microsoft Media Server) via HTTP.

De vereiste syntaxis is:

mmsh:// [: ][/ ][/ ]

md5
MD5-uitvoerprotocol.

Berekent de MD5-hash van de gegevens die moeten worden weggeschreven en schrijft deze vervolgens naar de
aangewezen uitvoer of stdout als er geen is opgegeven. Het kan worden gebruikt om muxers zonder te testen
schrijven van een echt dossier.

Enkele voorbeelden volgen.

# Schrijf de MD5-hash van het gecodeerde AVI-bestand naar het bestand output.avi.md5.
ffmpeg -i input.flv -f avi -y md5:output.avi.md5

# Schrijf de MD5-hash van het gecodeerde AVI-bestand naar stdout.
ffmpeg -i invoer.flv -f avi -y md5:

Merk op dat sommige formaten (meestal MOV) vereisen dat het uitvoerprotocol doorzoekbaar is, dus zij
zal mislukken met het MD5-uitvoerprotocol.

pijp
UNIX pipe-toegangsprotocol.

Lezen en schrijven van UNIX-pipes.

De geaccepteerde syntaxis is:

pijp:[ ]

aantal is het nummer dat overeenkomt met de bestandsdescriptor van de pijp (bijv. 0 voor stdin, 1
voor stdout, 2 voor stderr). Als aantal niet is opgegeven, standaard het stdout-bestand
descriptor wordt gebruikt voor schrijven, stdin voor lezen.

Bijvoorbeeld om uit stdin mee te lezen ffmpeg:

kattentest.wav | ffmpeg -i pijp:0
# ...dit is hetzelfde als...
kattentest.wav | ffmpeg -i pijp:

Om mee te schrijven naar stdout ffmpeg:

ffmpeg -i test.wav -f avi pijp:1 | kat > test.avi
# ...dit is hetzelfde als...
ffmpeg -i test.wav -f avi pijp: | kat > test.avi

Dit protocol accepteert de volgende opties:

blocksize
Stel de maximale blokgrootte van de I/O-bewerking in bytes in. De standaardwaarde is "INT_MAX", welke
resulteert in het niet beperken van de gevraagde blokgrootte. Deze waarde redelijk laag instellen
verbetert de reactietijd van gebruikersbeëindigingsverzoeken, wat waardevol is als gegevens
transmissie is traag.

Merk op dat sommige formaten (meestal MOV) vereisen dat het uitvoerprotocol doorzoekbaar is, dus
ze zullen mislukken met het pipe-uitvoerprotocol.

rtmp
Realtime berichtenprotocol.

Het Real-Time Messaging Protocol (RTMP) wordt gebruikt voor het streamen van multimedia-inhoud over een
TCP/IP-netwerk.

De vereiste syntaxis is:

rtmp://[ : @] [: ][/ ][/ ][/ ]

De geaccepteerde parameters zijn:

gebruikersnaam
Een optionele gebruikersnaam (meestal voor publicatie).

wachtwoord
Een optioneel wachtwoord (meestal voor publicatie).

server
Het adres van de RTMP-server.

port
Het nummer van de te gebruiken TCP-poort (standaard is 1935).

gebruiken Het is de naam van de toepassing waartoe toegang moet worden verkregen. Het komt meestal overeen met het pad waar
de applicatie is geïnstalleerd op de RTMP-server (bijv /op aanvraag/, /flits/live/, Enz.).
U kunt de waarde die is geparseerd uit de URI ook overschrijven via de optie "rtmp_app".

speelpad
Het is het pad of de naam van de bron die moet worden afgespeeld met verwijzing naar de toepassing
gespecificeerd in gebruiken, kan worden voorafgegaan door "mp4:". U kunt de waarde overschrijven waaruit is geparseerd
de URI ook via de optie "rtmp_playpath".

luisteren
Fungeren als een server, luisterend naar een inkomende verbinding.

time-out
Maximale tijd om te wachten op de inkomende verbinding. Impliceert luisteren.

Bovendien kunnen de volgende parameters worden ingesteld via opdrachtregelopties (of in code via
"AVOptie"s):

rtmp_app
Naam van de toepassing waarmee verbinding moet worden gemaakt op de RTMP-server. Deze optie heft de parameter op
gespecificeerd in de URI.

rtmp_buffer
Stel de clientbuffertijd in milliseconden in. De standaardwaarde is 3000.

rtmp_conn
Extra willekeurige AMF-verbindingsparameters, ontleed uit een tekenreeks, bijvoorbeeld zoals "B:1
S:authMe O:1 NN:code:1.23 NS:flag:ok O:0". Elke waarde wordt voorafgegaan door een enkele
teken dat het type aangeeft, B voor Boolean, N voor nummer, S voor tekenreeks, O voor object,
of Z voor null, gevolgd door een dubbele punt. Voor Booleans moeten de gegevens 0 of 1 zijn
respectievelijk ONWAAR of WAAR. Evenzo moeten de gegevens voor objecten 0 of 1 zijn om te eindigen of
beginnen met een object, respectievelijk. Gegevensitems in subobjecten kunnen een naam krijgen door de prefix
typ met 'N' en specificeer de naam voor de waarde (bijv. "NB:mijnVlag:1"). Dit
optie kan meerdere keren worden gebruikt om willekeurige AMF-reeksen te construeren.

rtmp_flashver
Versie van de Flash-plug-in die wordt gebruikt om de SWF-speler uit te voeren. De standaard is LNX 9,0,124,2.
(Bij publicatie is de standaard FMLE/3.0 (compatibel; ).)

rtmp_flush_interval
Aantal pakketten dat in hetzelfde verzoek is leeggemaakt (alleen RTMPT). De standaardwaarde is 10.

rtmp_live
Geef aan dat de media een livestream is. Geen hervatten of zoeken in livestreams is
mogelijk. De standaardwaarde is "any", wat betekent dat de abonnee eerst probeert te spelen
de livestream die is opgegeven in het afspeelpad. Als er geen livestream met die naam wordt gevonden,
het speelt de opgenomen stream af. De andere mogelijke waarden zijn "live" en "opgenomen".

rtmp_pageurl
URL van de webpagina waarin de media is ingesloten. Standaard wordt er geen waarde verzonden.

rtmp_playpath
Stream-ID om af te spelen of te publiceren. Deze optie overschrijft de opgegeven parameter
in de URI.

rtmp_subscribe
Naam van de livestream waarop u zich wilt abonneren. Standaard wordt er geen waarde verzonden. Het is alleen
verzonden als de optie is opgegeven of als rtmp_live is ingesteld op live.

rtmp_swfhash
SHA256-hash van het gedecomprimeerde SWF-bestand (32 bytes).

rtmp_swfsize
Grootte van het gedecomprimeerde SWF-bestand, vereist voor SWFVerification.

rtmp_swfurl
URL van de SWF-speler voor de media. Standaard wordt er geen waarde verzonden.

rtmp_swfverify
URL naar speler-swf-bestand, hash/grootte automatisch berekenen.

rtmp_tcurl
URL van de doelstream. Standaard ingesteld op proto://host[:port]/app.

Bijvoorbeeld om mee te lezen ffplay een multimediabron met de naam "sample" uit de applicatie
"vod" van een RTMP-server "myserver":

ffplay rtmp://mijnserver/vod/sample

Publiceren naar een met een wachtwoord beveiligde server, waarbij het afspeelpad en de app-namen afzonderlijk worden doorgegeven:

ffmpeg -re -i -f flv -rtmp_playpath een/lang/pad -rtmp_app long/app/name rtmp://username:password@myserver/

rtmpe
Versleuteld real-time berichtenprotocol.

Het Encrypted Real-Time Messaging Protocol (RTMPE) wordt gebruikt voor het streamen van multimedia
inhoud binnen standaard cryptografische primitieven, bestaande uit Diffie-Hellman-sleutel
exchange en HMACSHA256, waardoor een paar RC4-sleutels wordt gegenereerd.

rtmps
Real-Time Messaging Protocol via een beveiligde SSL-verbinding.

Het Real-Time Messaging Protocol (RTMPS) wordt gebruikt voor het streamen van multimedia-inhoud
een versleutelde verbinding.

rtmpt
Real-time messaging-protocol getunneld via HTTP.

Het Real-Time Messaging Protocol getunneld via HTTP (RTMPT) wordt gebruikt voor streaming
multimedia-inhoud binnen HTTP-verzoeken om firewalls te doorkruisen.

rtmpte
Versleuteld Real-Time Messaging Protocol getunneld via HTTP.

Hiervoor wordt het Encrypted Real-Time Messaging Protocol getunneld via HTTP (RTMPTE) gebruikt
multimedia-inhoud streamen binnen HTTP-verzoeken om firewalls te omzeilen.

rtmpts
Realtime berichtenprotocol getunneld via HTTPS.

Het Real-Time Messaging Protocol getunneld via HTTPS (RTMPTS) wordt gebruikt voor streaming
multimedia-inhoud binnen HTTPS-verzoeken om firewalls te doorkruisen.

libsmbclient
libsmbclient staat iemand toe om CIFS/SMB-netwerkbronnen te manipuleren.

De volgende syntaxis is vereist.

smb://[[domein:]gebruiker[:wachtwoord@]]server[/share[/pad[/bestand]]]

Dit protocol accepteert de volgende opties.

time-out
Stel de time-out in in milliseconden van socket I/O-bewerkingen die worden gebruikt door het onderliggende lage niveau
operatie. Standaard is deze ingesteld op -1, wat betekent dat de time-out niet is opgegeven.

afkappen
Bestaande bestanden afkappen bij schrijven, indien ingesteld op 1. Een waarde van 0 voorkomt afkappen.
De standaardwaarde is 1.

werkgroep
Stel de werkgroep in die wordt gebruikt voor het maken van verbindingen. Standaard is werkgroep niet opgegeven.

Voor meer informatie zie:http://www.samba.org/>.

libsh
Beveiligd protocol voor bestandsoverdracht via libssh

Lezen van of schrijven naar bronnen op afstand met behulp van het SFTP-protocol.

De volgende syntaxis is vereist.

sftp://[gebruiker[:wachtwoord]@]server[:poort]/path/to/remote/resource.mpeg

Dit protocol accepteert de volgende opties.

time-out
Stel de time-out in van socket I/O-bewerkingen die worden gebruikt door de onderliggende bewerking op laag niveau. Door
standaard is deze ingesteld op -1, wat betekent dat de time-out niet is opgegeven.

afkappen
Bestaande bestanden afkappen bij schrijven, indien ingesteld op 1. Een waarde van 0 voorkomt afkappen.
De standaardwaarde is 1.

prive sleutel
Geef het pad op van het bestand met de persoonlijke sleutel dat moet worden gebruikt tijdens autorisatie. Door
default libssh zoekt naar sleutels in het ~ / .ssh / directory.

Voorbeeld: speel een bestand af dat is opgeslagen op een externe server.

ffplay sftp://gebruiker:wachtwoord@server_adres:22/home/gebruiker/resource.mpeg

librtmp rtmp, rtmpe, rtmps, rtmpt, rtmpte
Real-Time Messaging Protocol en zijn varianten ondersteund door librtmp.

Vereist de aanwezigheid van de librtmp-headers en bibliotheek tijdens de configuratie. Je moet
configureer de build expliciet met "--enable-librtmp". Indien ingeschakeld zal dit de
native RTMP-protocol.

Dit protocol biedt de meeste clientfuncties en enkele serverfuncties die nodig zijn om te ondersteunen
RTMP, RTMP getunneld in HTTP (RTMPT), versleutelde RTMP (RTMPE), RTMP via SSL/TLS (RTMPS) en
getunnelde varianten van deze versleutelde typen (RTMPTE, RTMPTS).

De vereiste syntaxis is:

:// [: ][/ ][/ ]

met de meeste rtmp_proto is een van de strings "rtmp", "rtmpt", "rtmpe", "rtmps", "rtmpte",
"rtmpts" dat overeenkomt met elke RTMP-variant, en server, port, gebruiken en speelpad de
dezelfde betekenis als gespecificeerd voor het native RTMP-protocol. opties bevat een lijst met ruimte-
gescheiden opties van het formulier sleutel=golf.

Zie de librtmp handleidingpagina (man 3 librtmp) voor meer informatie.

Om bijvoorbeeld een bestand in realtime naar een RTMP-server te streamen met behulp van ffmpeg:

ffmpeg -re -i mijnbestand -f flv rtmp://myserver/live/mystream

Om dezelfde stream af te spelen met ffplay:

ffplay "rtmp://mijnserver/live/mijnstream live=1"

rtp
Realtime transportprotocol.

De vereiste syntaxis voor een RTP-URL is: rtp://hostname[:port][?optie=golf

port specificeert de te gebruiken RTP-poort.

De volgende URL-opties worden ondersteund:

ttl=n
Stel de TTL-waarde (Time-To-Live) in (alleen voor multicast).

rtcpport=n
Stel de externe RTCP-poort in op n.

localrtport=n
Stel de lokale RTP-poort in op n.

localrtcpport=n'
Stel de lokale RTCP-poort in op n.

pkt_grootte=n
Stel de maximale pakketgrootte (in bytes) in op n.

verbinden=0|1
Doe een "connect()" op de UDP-socket (indien ingesteld op 1) of niet (indien ingesteld op 0).

bronnen=ip[,ip]
Maak een lijst van toegestane bron-IP-adressen.

blok=ip[,ip]
Maak een lijst van niet-toegestane (geblokkeerde) bron-IP-adressen.

schrijf_naar_bron=0|1
Verzend pakketten naar het bronadres van het laatst ontvangen pakket (indien ingesteld op 1) of naar a
standaard extern adres (indien ingesteld op 0).

lokale poort=n
Stel de lokale RTP-poort in op n.

Dit is een verouderde optie. In plaats van, localrtport zou gebruikt moeten worden.

Belangrijke info:

1. Als rtcport niet is ingesteld, wordt de RTCP-poort ingesteld op de RTP-poortwaarde plus 1.

2. Als localrtport (de lokale RTP-poort) is niet ingesteld waarvoor een beschikbare poort zal worden gebruikt
de lokale RTP- en RTCP-poorten.

3. Als lokalertcpport (de lokale RTCP-poort) niet is ingesteld, wordt deze ingesteld op de lokale RTP-poort
waarde plus 1.

rtsp
Realtime streamingprotocol.

RTSP is technisch gezien geen protocolhandler in libav-indeling, het is een demuxer en muxer. De
demuxer ondersteunt zowel normale RTSP (met gegevens overgedragen via RTP; dit wordt gebruikt door bijv
Apple en Microsoft) en Real-RTSP (met gegevens overgedragen via RDT).

De muxer kan worden gebruikt om een ​​stream met behulp van RTSP ANNOUNCE naar een server te sturen die dit ondersteunt
(momenteel Darwin Streaming Server en Mischa Spiegelmock's
<https://github.com/revmischa/rtsp-server>).

De vereiste syntaxis voor een RTSP-URL is:

rtsp:// [: ]/

Opties kunnen worden ingesteld op de ffmpeg/ffplay opdrachtregel, of stel code in via "AVOption"s of in
"avformat_open_input".

De volgende opties worden ondersteund.

begin_pauze
Begin niet meteen met het afspelen van de stream als deze is ingesteld op 1. De standaardwaarde is 0.

rtsp_transport
Stel RTSP-transportprotocollen in.

Het accepteert de volgende waarden:

udp Gebruik UDP als lager transportprotocol.

tcp Gebruik TCP (interleaving binnen het RTSP-besturingskanaal) als lager transport
protocol.

udp_multicast
Gebruik UDP-multicast als lager transportprotocol.

http
Gebruik HTTP-tunneling als lager transportprotocol, wat handig is voor doorgeven
volmachten.

Er kunnen meerdere lagere transportprotocollen worden opgegeven, in dat geval wordt er één geprobeerd
per keer (als de installatie van de ene mislukt, wordt de volgende geprobeerd). Voor de muxer, alleen de
tcp en udp opties worden ondersteund.

rtsp_vlaggen
Stel RTSP-vlaggen in.

De volgende waarden worden geaccepteerd:

filter_src
Accepteer alleen pakketten van onderhandeld peer-adres en poort.

luisteren
Fungeren als een server, luisterend naar een inkomende verbinding.

liever_tcp
Probeer eerst TCP voor RTP-transport, als TCP beschikbaar is als RTSP RTP-transport.

Standaardwaarde is geen.

toegestane_media_types
Stel mediatypen in om te accepteren van de server.

De volgende vlaggen worden geaccepteerd:

video-
audio
gegevens

Standaard accepteert het alle mediatypen.

min_poort
Stel minimale lokale UDP-poort in. De standaardwaarde is 5000.

max_poort
Stel de maximale lokale UDP-poort in. De standaardwaarde is 65000.

time-out
Stel maximale time-out in (in seconden) om te wachten op inkomende verbindingen.

Een waarde van -1 betekent oneindig (standaard). Deze optie impliceert de rtsp_vlaggen ingesteld op
luisteren.

reorder_queue_size
Stel het aantal pakketten in dat moet worden gebufferd voor het afhandelen van opnieuw geordende pakketten.

tijd uit
Stel socket TCP I/O time-out in microseconden in.

user agent
Overschrijf de User-Agent-header. Indien niet opgegeven, wordt standaard het libavformat gebruikt
identificatietekenreeks.

Bij het ontvangen van gegevens via UDP probeert de demuxer de ontvangen pakketten opnieuw te ordenen (aangezien ze
kan niet in de juiste volgorde aankomen, of pakketten kunnen volledig verloren gaan). Dit kan worden uitgeschakeld door in te stellen
de maximale demuxvertraging op nul (via het veld "max_delay" van AVFormatContext).

Bij het bekijken van multi-bitrate Real-RTSP-streams met ffplay, kunnen de weer te geven streams zijn
gekozen met "-vst" n en "-ast" n voor respectievelijk video en audio en kan worden ingeschakeld
de vlieg door op "v" en "a" te drukken.

Voorbeelden

De volgende voorbeelden maken allemaal gebruik van de ffplay en ffmpeg gereedschap.

· Bekijk een stream via UDP, met een maximale herordeningsvertraging van 0.5 seconden:

ffplay -max_delay 500000 -rtsp_transport udp rtsp://server/video.mp4

· Bekijk een stream getunneld via HTTP:

ffplay -rtsp_transport http rtsp://server/video.mp4

· Stuur een stream in realtime naar een RTSP-server, zodat anderen deze kunnen bekijken:

ffmpeg -re -i -f rtsp -muxdelay 0.1 rtsp://server/live.sdp

· Ontvang een stream in realtime:

ffmpeg -rtsp_flags listen -i rtsp://ownaddress/live.sdp

sap
Sessieaankondigingsprotocol (RFC 2974). Dit is technisch gezien geen protocolhandler
libavformat, het is een muxer en demuxer. Het wordt gebruikt voor het signaleren van RTP-streams, door
het regelmatig aankondigen van de SDP voor de streams op een aparte poort.

vrouw

De syntaxis voor een SAP-URL die aan de muxer wordt gegeven, is:

sap:// [: ][? ]

De RTP-pakketten worden verzonden naar bestemming op poort port, of naar poort 5004 als er geen poort is
gespecificeerd. opties is een door "&" gescheiden lijst. De volgende opties worden ondersteund:

kondig_addr=adres
Geef het bestemmings-IP-adres op waarnaar de aankondigingen moeten worden verzonden. Indien weggelaten, de
aankondigingen worden verzonden naar het veelgebruikte multicast-adres voor SAP-aankondigingen
224.2.127.254 (sap.mcast.net), of ff0e::2:7ffe als bestemming is een IPv6-adres.

kondig_poort=port
Specificeer de poort waarop de aankondigingen moeten worden verzonden, standaard 9875 indien niet opgegeven.

ttl=ttl
Specificeer de time to live-waarde voor de aankondigingen en RTP-pakketten, standaard ingesteld op 255.

zelfde_poort=0 | 1
Indien ingesteld op 1, verzendt u alle RTP-streams op hetzelfde poortpaar. Indien nul (standaard), all
streams worden verzonden op unieke poorten, waarbij elke stream op een poort 2 nummers hoger is dan de
vorig. VLC/Live555 vereist dat dit op 1 staat om de stream te kunnen ontvangen.
De RTP-stack in libav-indeling voor ontvangst vereist dat alle streams uniek worden verzonden
poorten.

Voorbeeldopdrachtregels volgen.

Een stream uitzenden op het lokale subnet, om te bekijken in VLC:

ffmpeg -re -i -f sap sap://224.0.0.255?same_port=1

Evenzo om naar binnen te kijken ffplay:

ffmpeg -re -i -f sap sap://224.0.0.255

En om naar binnen te kijken ffplay, via IPv6:

ffmpeg -re -i -f sap sap://[ff0e::1:2:3:4]

Demuxer

De syntaxis voor een SAP-URL die aan de demuxer wordt gegeven, is:

sap://[ ][: ]

adres is het multicast-adres om te luisteren naar aankondigingen, indien weggelaten, de standaardinstelling
224.2.127.254 (sap.mcast.net) wordt gebruikt. port is de poort waarop wordt geluisterd, 9875 als
overgeslagen.

De demuxer luistert naar aankondigingen op het opgegeven adres en poort. Eens een
aankondiging wordt ontvangen, probeert het die specifieke stream te ontvangen.

Voorbeeldopdrachtregels volgen.

Om de eerste stream af te spelen die is aangekondigd op het normale SAP multicast-adres:

ffspeel sap://

Om de eerste aangekondigde stream af te spelen op een van de standaard IPv6 SAP multicast-adressen:

ffspeel sap://[ff0e::2:7ffe]

SCTP
Stream Control-transmissieprotocol.

De geaccepteerde URL-syntaxis is:

sctp:// : [? ]

Het protocol accepteert de volgende opties:

luisteren
Indien ingesteld op een willekeurige waarde, luister dan naar een inkomende verbinding. Uitgaande verbinding wordt gedaan door
standaard.

max_stromen
Stel het maximale aantal streams in. Standaard is er geen limiet ingesteld.

srtp
Veilig real-time transportprotocol.

De geaccepteerde opties zijn:

srtp_in_suite
srtp_out_suite
Selecteer invoer- en uitvoercoderingssuites.

Ondersteunde waarden:

AES_CM_128_HMAC_SHA1_80
SRTP_AES128_CM_HMAC_SHA1_80
AES_CM_128_HMAC_SHA1_32
SRTP_AES128_CM_HMAC_SHA1_32
srtp_in_params
srtp_out_params
Stel invoer- en uitvoercoderingsparameters in, die worden uitgedrukt door een base64-gecodeerd
weergave van een binair blok. De eerste 16 bytes van dit binaire blok worden gebruikt als
master key, worden de volgende 14 bytes gebruikt als master salt.

subbestand
Extraheer virtueel een segment van een bestand of een andere stream. De onderliggende stroom moet zijn
zoekbaar.

Geaccepteerde opties:

begin
Startoffset van het geëxtraheerde segment, in bytes.

einde Eindoffset van het geëxtraheerde segment, in bytes.

Voorbeelden:

Pak een hoofdstuk uit een DVD VOB-bestand (begin- en eindsectoren extern verkregen en
vermenigvuldigd met 2048):

subbestand,,start,153391104,end,268142592,,:/media/dvd/VIDEO_TS/VTS_08_1.VOB

Speel een AVI-bestand rechtstreeks af vanuit een TAR-archief:

subbestand,,start,183241728,end,366490624,,:archive.tar

tcp
Protocol voor transmissiecontrole.

De vereiste syntaxis voor een TCP-URL is:

tcp:// : [? ]

opties bevat een lijst met door & gescheiden opties van het formulier sleutel=golf.

De lijst met ondersteunde opties volgt.

luister=1 | 0
Luister naar een inkomende verbinding. Standaardwaarde is 0.

time-out=microseconden
Stel de time-out voor de verhogingsfout in, uitgedrukt in microseconden.

Deze optie is alleen relevant in de leesmodus: als er meer dan deze tijd geen gegevens zijn binnengekomen
interval, verhogingsfout.

luister_timeout=milliseconden
Stel de time-out voor luisteren in, uitgedrukt in milliseconden.

Het volgende voorbeeld laat zien hoe u een luisterende TCP-verbinding opzet met ffmpegDit is
vervolgens benaderd met ffplay:

ffmpeg -i -F tcp:// : ?luisteren
ffplay tcp:// :

tls
Transport Layer Security (TLS)/Secure Sockets Layer (SSL)

De vereiste syntaxis voor een TLS/SSL-URL is:

tls:// : [? ]

De volgende parameters kunnen worden ingesteld via de opdrachtregelopties (of in code via "AVOption"s):

ca_bestand, cabestand=bestandsnaam
Een bestand met basiscertificaten van certificeringsinstanties (CA) die als vertrouwd moeten worden behandeld. Als
de gekoppelde TLS-bibliotheek bevat een standaardinstelling waarvoor dit mogelijk niet hoeft te worden opgegeven
verificatie werkt, maar niet alle bibliotheken en instellingen hebben standaardinstellingen ingebouwd
bestand moet de OpenSSL PEM-indeling hebben.

tls_verify=1 | 0
Indien ingeschakeld, probeer dan de peer waarmee we communiceren te verifiëren. Let op, indien gebruikt
OpenSSL, dit zorgt er momenteel alleen voor dat het peer-certificaat wordt ondertekend door een van de
de rootcertificaten in de CA-database, maar het valideert niet dat de
certificaat komt daadwerkelijk overeen met de hostnaam waarmee we verbinding proberen te maken. (Met GnuTLS,
de hostnaam wordt ook gevalideerd.)

Dit is standaard uitgeschakeld omdat hiervoor een CA-database nodig is die door de
beller in veel gevallen.

cert_bestand, certificaat=bestandsnaam
Een bestand met een certificaat om te gebruiken in de handshake met de peer. (Wanneer
werkend als server, in luistermodus, wordt dit vaker vereist door de peer, terwijl
alleen clientcertificaten zijn verplicht in bepaalde instellingen.)

sleutel_bestand, sleutel =bestandsnaam
Een bestand met de persoonlijke sleutel voor het certificaat.

luister=1 | 0
Indien ingeschakeld, luister naar verbindingen op de opgegeven poort en neem de serverrol over
de handdruk in plaats van de cliëntrol.

Voorbeeld opdrachtregels:

Een TLS/SSL-server maken die een invoerstroom bedient.

ffmpeg -i -F tls:// : ?luister&cert= &sleutel=

Om een ​​stream van de TLS/SSL-server af te spelen met behulp van ffplay:

ffplay tls:// :

udp
Gebruiker Datagram-protocol.

De vereiste syntaxis voor een UDP-URL is:

udp:// : [? ]

opties bevat een lijst met door & gescheiden opties van het formulier sleutel=golf.

Als threading is ingeschakeld op het systeem, wordt een circulaire buffer gebruikt om de
inkomende gegevens, waardoor het verlies van gegevens als gevolg van overschrijdingen van de UDP-socketbuffer kan worden verminderd.
De fifo_maat en overschrijding_niet-fataal opties zijn gerelateerd aan deze buffer.

De lijst met ondersteunde opties volgt.

buffergrootte=grootte
Stel de maximale UDP-socketbuffergrootte in bytes in. Dit wordt gebruikt om ofwel de
ontvangen of verzenden buffergrootte, afhankelijk van waar de socket voor wordt gebruikt. Standaard is
64 KB. Zie ook fifo_maat.

lokale poort=port
Negeer de lokale UDP-poort om mee te binden.

lokaal adres=addr
Kies het lokale IP-adres. Dit is bijvoorbeeld handig als het verzenden van multicast en de host heeft
meerdere interfaces, waarbij de gebruiker kan kiezen via welke interface hij wil doorsturen
door het IP-adres van die interface op te geven.

pkt_grootte=grootte
Stel de grootte in bytes van UDP-pakketten in.

hergebruik=1 | 0
Hergebruik van UDP-sockets expliciet toestaan ​​of verbieden.

ttl=ttl
Stel de time to live-waarde in (alleen voor multicast).

verbinden=1 | 0
Initialiseer de UDP-socket met "connect()". In dit geval het bestemmingsadres
kan later niet worden gewijzigd met ff_udp_set_remote_url. Als het bestemmingsadres dat niet is
bekend bij de start, kan deze optie ook gespecificeerd worden in ff_udp_set_remote_url. Dit
maakt het mogelijk om het bronadres te achterhalen voor de pakketten met getsockname, en maakt
schrijft return met AVERROR(ECONNREFUSED) als "destination unreachable" is ontvangen.
Voor ontvangst geeft dit het voordeel dat alleen pakketten worden ontvangen van de opgegeven persoon
peer adres/poort.

bronnen=adres[,adres]
Ontvang alleen pakketten die naar de multicast-groep zijn verzonden vanaf een van de opgegeven afzender-IP's
adressen.

blok=adres[,adres]
Negeer pakketten die naar de multicast-groep zijn verzonden vanaf de opgegeven IP-adressen van de afzender.

fifo_maat=eenheden
Stel de UDP-ontvangende circulaire buffergrootte in, uitgedrukt als een aantal pakketten met grootte
van 188 bytes. Indien niet opgegeven, is de standaardwaarde 7*4096.

overrun_nonfatal=1 | 0
Overleef in het geval dat UDP een circulaire bufferoverschrijding ontvangt. Standaardwaarde is 0.

time-out=microseconden
Stel de time-out voor de verhogingsfout in, uitgedrukt in microseconden.

Deze optie is alleen relevant in de leesmodus: als er meer dan deze tijd geen gegevens zijn binnengekomen
interval, verhogingsfout.

uitzending=1 | 0
UDP-uitzendingen expliciet toestaan ​​of verbieden.

Houd er rekening mee dat uitzenden mogelijk niet correct werkt op netwerken met een uitzendstorm
bescherming.

Voorbeelden

· Gebruik maken van ffmpeg streamen via UDP naar een extern eindpunt:

ffmpeg -i -F udp:// :

· Gebruik maken van ffmpeg streamen in mpegts-indeling via UDP met behulp van UDP-pakketten van 188 grootte, met behulp van een
grote invoerbuffer:

ffmpeg -i -f mpegts udp:// : ?pkt_size=188&buffer_size=65535

· Gebruik maken van ffmpeg om via UDP te ontvangen van een extern eindpunt:

ffmpeg -i udp://[ ]: ...

unix
Unix lokale socket

De vereiste syntaxis voor een Unix-socket-URL is:

unix://

De volgende parameters kunnen worden ingesteld via de opdrachtregelopties (of in code via "AVOption"s):

time-out
Time-out in ms.

luisteren
Maak de Unix-socket in luistermodus.

Gebruik ffmpeg-protocollen online met behulp van onworks.net-services



Nieuwste Linux & Windows online programma's