Ini ialah arahan ffmpeg-protocols yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.
JADUAL:
NAMA
ffmpeg-protocols - Protokol FFmpeg
DESCRIPTION
Dokumen ini menerangkan protokol input dan output yang disediakan oleh libavformat
perpustakaan.
Protokol
Protokol ialah elemen yang dikonfigurasikan dalam FFmpeg yang membolehkan akses kepada sumber yang memerlukan
protokol tertentu.
Apabila anda mengkonfigurasi binaan FFmpeg anda, semua protokol yang disokong didayakan secara lalai.
Anda boleh menyenaraikan semua yang tersedia menggunakan pilihan konfigurasi "--list-protocols".
Anda boleh melumpuhkan semua protokol menggunakan pilihan konfigurasi "--disable-protocols", dan
dayakan protokol secara selektif menggunakan pilihan "--enable-protocol=PROTOKOL", atau anda boleh
lumpuhkan protokol tertentu menggunakan pilihan "--disable-protocol=PROTOKOL".
Pilihan "-protocols" alat ff* akan memaparkan senarai protokol yang disokong.
Penerangan mengenai protokol yang tersedia pada masa ini berikut.
async
Pembalut pengisian data tak segerak untuk aliran input.
Isikan data dalam benang latar belakang, untuk memisahkan operasi I/O daripada benang demux.
tak segerak:
tidak segerak:http://host/resource
async:cache:http://host/resource
bluray
Baca senarai main BluRay.
Pilihan yang diterima ialah:
sudut
Sudut BluRay
bab
Mulakan bab (1...N)
senarai main
Senarai main untuk dibaca (BDMV/SENARAI MAIN/?????.mpls)
Contoh:
Baca senarai main terpanjang daripada BluRay yang dipasang ke /mnt/bluray:
bluray:/mnt/bluray
Baca sudut 2 senarai main 4 daripada BluRay yang dipasang ke /mnt/bluray, bermula dari bab 2:
-senarai main 4 -sudut 2 -bab 2 bluray:/mnt/bluray
cache
Pembungkus cache untuk aliran input.
Cache aliran input ke fail sementara. Ia membawa keupayaan mencari ke strim langsung.
cache:
ringkas
Protokol penggabungan fizikal.
Baca dan cari daripada banyak sumber mengikut urutan seolah-olah ia adalah sumber yang unik.
URL yang diterima oleh protokol ini mempunyai sintaks:
concat: | |...|
di mana URL1, URL2, ..., URLN ialah url sumber yang akan digabungkan, setiap satu
mungkin menyatakan protokol yang berbeza.
Contohnya untuk membaca urutan fail split1.mpeg, split2.mpeg, split3.mpeg bersama ffplay
gunakan arahan:
ffplay concat:split1.mpeg\|split2.mpeg\|split3.mpeg
Ambil perhatian bahawa anda mungkin perlu melarikan diri daripada aksara "|" yang khas untuk banyak kerang.
Crypto
Protokol bacaan strim disulitkan AES.
Pilihan yang diterima ialah:
utama Tetapkan blok perduaan kunci penyahsulitan AES daripada perwakilan heksadesimal yang diberikan.
iv Tetapkan blok binari vektor penyahsulitan penyahsulitan AES daripada perenambelasan yang diberikan
perwakilan.
Format URL yang diterima:
kripto:
crypto+
data
Data dalam talian dalam URI. Lihathttp://en.wikipedia.org/wiki/Data_URI_scheme>.
Contohnya, untuk menukar fail GIF yang diberikan selaras dengan ffmpeg:
ffmpeg -i "data:image/gif;base64,R0lGODdhCAAIAMIEAAAAAAAA//8AAP//AP///////////////ywAAAAACAAIAAADF0gEDLojDgdGiJdJqUX02iB4E8Q9jUMkADs=" smiley.png
fail
Protokol capaian fail.
Baca daripada atau tulis ke fail.
URL fail boleh mempunyai borang:
fail:
di mana nama fail ialah laluan fail untuk dibaca.
URL yang tidak mempunyai awalan protokol akan diandaikan sebagai URL fail. Bergantung kepada
binaan, URL yang kelihatan seperti laluan Windows dengan huruf pemacu pada permulaannya
juga akan diandaikan sebagai URL fail (biasanya tidak berlaku dalam binaan untuk unix-like
sistem).
Contohnya untuk membaca daripada fail input.mpeg bersama ffmpeg gunakan arahan:
ffmpeg -i fail:input.mpeg output.mpeg
Protokol ini menerima pilihan berikut:
memotong
Potong fail sedia ada semasa menulis, jika ditetapkan kepada 1. Nilai 0 menghalang pemangkasan.
Nilai lalai ialah 1.
menyekat
Tetapkan saiz blok maksimum operasi I/O, dalam bait. Nilai lalai ialah "INT_MAX", iaitu
mengakibatkan tidak mengehadkan saiz blok yang diminta. Menetapkan nilai ini agak rendah
meningkatkan masa tindak balas permintaan penamatan pengguna, yang berharga untuk fail pada perlahan
sederhana.
ftp
FTP (Protokol Pemindahan Fail).
Baca daripada atau tulis ke sumber jauh menggunakan protokol FTP.
Sintaks berikut diperlukan.
ftp://[pengguna[:kata laluan]@]pelayan[:port]/path/to/remote/resource.mpeg
Protokol ini menerima pilihan berikut.
timeout
Tetapkan tamat masa dalam mikrosaat operasi I/O soket yang digunakan oleh aras rendah asas
operasi. Secara lalai ia ditetapkan kepada -1, yang bermaksud tamat masa tidak ditentukan.
ftp-anonymous-password
Kata laluan digunakan semasa log masuk sebagai pengguna tanpa nama. Biasanya alamat e-mel sepatutnya
terpakai.
ftp-write-seekable
Kawal kebolehcarian sambungan semasa pengekodan. Jika ditetapkan kepada 1 sumbernya ialah
sepatutnya boleh dicari, jika ditetapkan kepada 0 ia diandaikan tidak boleh dicari. Nilai asal
adalah 0.
NOTA: Protokol boleh digunakan sebagai output, tetapi disyorkan untuk tidak melakukannya, melainkan khas
penjagaan diambil (ujian, konfigurasi pelayan tersuai dll.). Pelayan FTP yang berbeza berkelakuan
dengan cara yang berbeza semasa operasi mencari. alatan ff* mungkin menghasilkan kandungan yang tidak lengkap disebabkan oleh
had pelayan.
gopher
Protokol Gopher.
hls
Baca strim yang mematuhi Penstriman Langsung HTTP Apple sebagai strim yang seragam. M3U8
senarai main yang menerangkan segmen boleh menjadi sumber HTTP jauh atau fail tempatan, diakses
menggunakan protokol fail standard. Protokol bersarang diisytiharkan dengan menyatakan "+prototaip"
selepas nama skema URI hls, di mana prototaip sama ada "fail" atau "http".
hls+http://host/path/to/remote/resource.m3u8
hls+file://path/to/local/resource.m3u8
Menggunakan protokol ini tidak digalakkan - demuxer hls harus berfungsi dengan baik (jika tidak,
sila laporkan isu) dan lebih lengkap. Untuk menggunakan hls demuxer sebaliknya, hanya
gunakan URL terus ke fail m3u8.
http
HTTP (Protokol Pemindahan Teks Hiper).
Protokol ini menerima pilihan berikut:
boleh dicari
Kawal kebolehcarian sambungan. Jika ditetapkan kepada 1 sumber itu sepatutnya
boleh dicari, jika ditetapkan kepada 0 ia diandaikan tidak boleh dicari, jika ditetapkan kepada -1 ia akan cuba untuk
autodetect jika ia boleh dicari. Nilai lalai ialah -1.
chunked_post
Jika ditetapkan kepada 1 gunakan Pengekodan Pemindahan chunked untuk siaran, lalai ialah 1.
jenis kandungan
Tetapkan jenis kandungan tertentu untuk mesej POST.
tajuk
Tetapkan pengepala HTTP tersuai, boleh mengatasi pengepala lalai terbina dalam. Nilainya mestilah a
pengekodan rentetan pengepala.
pelbagai_permintaan
Gunakan sambungan berterusan jika ditetapkan kepada 1, lalai ialah 0.
post_data
Tetapkan data siaran HTTP tersuai.
Ejen pengguna
user_agent
Gantikan pengepala Ejen Pengguna. Jika tidak dinyatakan, protokol akan menggunakan rentetan
menerangkan binaan libavformat. ("Lavf/ ")
timeout
Tetapkan tamat masa dalam mikrosaat operasi I/O soket yang digunakan oleh aras rendah asas
operasi. Secara lalai ia ditetapkan kepada -1, yang bermaksud tamat masa tidak ditentukan.
jenis_mime
Eksport jenis MIME.
berais Jika ditetapkan kepada 1 permintaan metadata ICY (SHOUTcast) daripada pelayan. Jika pelayan menyokong
ini, metadata perlu diambil semula oleh aplikasi dengan membaca
icy_metadata_headers and icy_metadata_packet pilihan. Lalai ialah 1.
icy_metadata_headers
Jika pelayan menyokong metadata ICY, ini mengandungi balasan HTTP khusus ICY
pengepala, dipisahkan oleh aksara baris baharu.
icy_metadata_packet
Jika pelayan menyokong metadata ICY, dan berais telah ditetapkan kepada 1, ini mengandungi bukan-
paket metadata kosong yang dihantar oleh pelayan. Ia harus ditinjau secara berkala oleh
aplikasi yang berminat dengan kemas kini metadata pertengahan strim.
cookies
Tetapkan kuki untuk dihantar dalam permintaan masa hadapan. Format setiap kuki adalah sama
sebagai nilai medan respons HTTP Set-Cookie. Berbilang kuki boleh dihadkan oleh
watak baris baharu.
mengimbangi
Tetapkan offset bait awal.
end_offset
Cuba hadkan permintaan kepada bait sebelum ofset ini.
kaedah
Apabila digunakan sebagai pilihan pelanggan, ia menetapkan kaedah HTTP untuk permintaan tersebut.
Apabila digunakan sebagai pilihan pelayan ia menetapkan kaedah HTTP yang akan dijangkakan
pelanggan (s). Jika kaedah HTTP yang dijangka dan yang diterima tidak sepadan dengan klien
akan diberi jawapan Permintaan Buruk. Apabila menyahset kaedah HTTP tidak disemak
sekarang. Ini akan digantikan dengan pengesanan automatik pada masa hadapan.
mendengar
Jika ditetapkan kepada 1 mendayakan pelayan HTTP percubaan. Ini boleh digunakan untuk menghantar data apabila digunakan
sebagai pilihan output, atau baca data daripada klien dengan HTTP POST apabila digunakan sebagai input
pilihan. Jika ditetapkan kepada 2 mendayakan pelayan HTTP mutli-klien percubaan. Ini belum lagi
dilaksanakan dalam ffmpeg.c atau ffserver.c dan oleh itu tidak boleh digunakan sebagai baris arahan
pilihan.
# Bahagian pelayan (menghantar):
ffmpeg -i somefile.ogg -c copy -listen 1 -f ogg http:// :
# Pihak pelanggan (menerima):
ffmpeg -i http:// : -c copy somefile.ogg
# Pelanggan juga boleh dilakukan dengan wget:
wget http:// : -O somefile.ogg
# Bahagian pelayan (menerima):
ffmpeg -dengar 1 -i http:// : -c copy somefile.ogg
# Pihak pelanggan (menghantar):
ffmpeg -i somefile.ogg -chunked_post 0 -c copy -f ogg http:// :
# Pelanggan juga boleh dilakukan dengan wget:
wget --post-file=somefile.ogg http:// :
HTTP Cookies
Sesetengah permintaan HTTP akan ditolak melainkan nilai kuki dihantar bersama permintaan itu. The
cookies pilihan membolehkan kuki ini ditentukan. Sekurang-kurangnya, setiap kuki mesti
tentukan nilai bersama-sama dengan laluan dan domain. Permintaan HTTP yang sepadan dengan kedua-dua domain
dan laluan akan memasukkan nilai kuki secara automatik dalam medan pengepala Kuki HTTP.
Berbilang kuki boleh dihadkan oleh baris baharu.
Sintaks yang diperlukan untuk memainkan strim yang menentukan kuki ialah:
ffplay -cookies "nlqptid=nltid=tsn; path=/; domain=somedomain.com;" http://somedomain.com/somestream.m3u8
Icecast
Protokol Icecast (strim ke pelayan Icecast)
Protokol ini menerima pilihan berikut:
ice_genre
Tetapkan genre strim.
nama_ais
Tetapkan nama strim.
ice_description
Tetapkan perihalan strim.
ice_url
Tetapkan URL tapak web strim.
ais_awam
Tetapkan sama ada strim itu harus terbuka. Lalai ialah 0 (bukan awam).
user_agent
Gantikan pengepala Ejen Pengguna. Jika tidak dinyatakan rentetan bentuk "Lavf/ "
akan digunakan.
kata laluan
Tetapkan kata laluan titik lekap Icecast.
jenis kandungan
Tetapkan jenis kandungan strim. Ini mesti ditetapkan jika ia berbeza daripada audio/mpeg.
legacy_icecast
Ini membolehkan sokongan untuk versi Icecast < 2.4.0, yang tidak menyokong HTTP PUT
kaedah tetapi kaedah SUMBER.
aiscast://[ [: ]@] : /
mmst
Protokol MMS (Microsoft Media Server) melalui TCP.
mmsh
Protokol MMS (Microsoft Media Server) melalui HTTP.
Sintaks yang diperlukan ialah:
mmsh:// [: ][/ ][/ ]
md5
Protokol keluaran MD5.
Mengira cincangan MD5 bagi data yang akan ditulis, dan pada tutup menulis ini ke
output yang ditetapkan atau stdout jika tiada yang dinyatakan. Ia boleh digunakan untuk menguji muxers tanpa
menulis fail sebenar.
Beberapa contoh berikut.
# Tulis cincang MD5 bagi fail AVI yang dikodkan ke output fail.avi.md5.
ffmpeg -i input.flv -f avi -y md5:output.avi.md5
# Tulis cincangan MD5 bagi fail AVI yang dikodkan ke stdout.
ffmpeg -i input.flv -f avi -y md5:
Ambil perhatian bahawa sesetengah format (biasanya MOV) memerlukan protokol output boleh dicari, jadi mereka
akan gagal dengan protokol output MD5.
paip
Protokol capaian paip UNIX.
Baca dan tulis daripada paip UNIX.
Sintaks yang diterima ialah:
paip:[ ]
nombor ialah nombor yang sepadan dengan deskriptor fail paip (cth 0 untuk stdin, 1
untuk stdout, 2 untuk stderr). Jika nombor tidak ditentukan, secara lalai fail stdout
deskriptor akan digunakan untuk menulis, stdin untuk membaca.
Contohnya membaca dari stdin dengan ffmpeg:
ujian kucing.wav | ffmpeg -i paip:0
# ...ini sama dengan...
ujian kucing.wav | paip ffmpeg -i:
Untuk menulis untuk stdout dengan ffmpeg:
ffmpeg -i test.wav -f paip avi:1 | kucing > ujian.avi
# ...ini sama dengan...
ffmpeg -i test.wav -f paip avi: | kucing > ujian.avi
Protokol ini menerima pilihan berikut:
menyekat
Tetapkan saiz blok maksimum operasi I/O, dalam bait. Nilai lalai ialah "INT_MAX", iaitu
mengakibatkan tidak mengehadkan saiz blok yang diminta. Menetapkan nilai ini agak rendah
meningkatkan masa tindak balas permintaan penamatan pengguna, yang bernilai jika data
penghantaran adalah perlahan.
Ambil perhatian bahawa sesetengah format (biasanya MOV), memerlukan protokol output boleh dicari, jadi
mereka akan gagal dengan protokol keluaran paip.
rtmp
Protokol Mesej Masa Nyata.
Protokol Mesej Masa Nyata (RTMP) digunakan untuk menstrim kandungan multimedia merentasi a
Rangkaian TCP/IP.
Sintaks yang diperlukan ialah:
rtmp://[ : @] [: ][/ ][/ ][/ ]
Parameter yang diterima ialah:
nama pengguna
Nama pengguna pilihan (kebanyakannya untuk penerbitan).
kata laluan
Kata laluan pilihan (kebanyakannya untuk penerbitan).
server
Alamat pelayan RTMP.
pelabuhan
Nombor port TCP untuk digunakan (secara lalai ialah 1935).
aplikasi Ia adalah nama aplikasi untuk diakses. Ia biasanya sepadan dengan laluan di mana
aplikasi dipasang pada pelayan RTMP (cth /permintaan/, /flash/live/, dan lain-lain.).
Anda boleh mengatasi nilai yang dihuraikan daripada URI melalui pilihan "rtmp_app" juga.
laluan bermain
Ia ialah laluan atau nama sumber untuk dimainkan dengan merujuk kepada aplikasi
dinyatakan dalam aplikasi, mungkin diawali dengan "mp4:". Anda boleh mengatasi nilai yang dihuraikan daripada
URI melalui pilihan "rtmp_playpath" juga.
mendengar
Bertindak sebagai pelayan, mendengar sambungan masuk.
timeout
Masa maksimum untuk menunggu sambungan masuk. Menyiratkan mendengar.
Selain itu, parameter berikut boleh ditetapkan melalui pilihan baris arahan (atau dalam kod melalui
"AVOption"):
rtmp_app
Nama aplikasi untuk disambungkan pada pelayan RTMP. Pilihan ini mengatasi parameter
dinyatakan dalam URI.
rtmp_buffer
Tetapkan masa penimbal pelanggan dalam milisaat. Lalai ialah 3000.
rtmp_conn
Parameter sambungan AMF tambahan sewenang-wenangnya, dihuraikan daripada rentetan, cth seperti "B:1
S:authMe O:1 NN:code:1.23 NS:flag:ok O:0". Setiap nilai diawali dengan satu
aksara yang menunjukkan jenis, B untuk Boolean, N untuk nombor, S untuk rentetan, O untuk objek,
atau Z untuk nol, diikuti dengan titik bertindih. Untuk Booleans data mestilah sama ada 0 atau 1 untuk
PALSU atau BENAR, masing-masing. Begitu juga untuk Objek data mestilah 0 atau 1 untuk menamatkan atau
memulakan objek, masing-masing. Item data dalam subobjek boleh dinamakan, dengan memberi awalan
taip dengan 'N' dan nyatakan nama sebelum nilai (iaitu "NB:myFlag:1"). ini
pilihan boleh digunakan beberapa kali untuk membina jujukan AMF sewenang-wenangnya.
rtmp_flashver
Versi pemalam Flash yang digunakan untuk menjalankan pemain SWF. Lalai ialah LNX 9,0,124,2.
(Apabila menerbitkan, lalai ialah FMLE/3.0 (serasi; ))
rtmp_flush_interval
Bilangan paket yang dibuang dalam permintaan yang sama (RTMPT sahaja). Lalai ialah 10.
rtmp_live
Tentukan bahawa media ialah strim langsung. Tiada menyambung semula atau mencari dalam strim langsung
mungkin. Nilai lalai ialah "mana-mana", yang bermaksud pelanggan mula-mula cuba bermain
strim langsung yang dinyatakan dalam laluan main. Jika strim langsung nama itu tidak ditemui,
ia memainkan strim yang dirakam. Nilai lain yang mungkin adalah "langsung" dan "dirakam".
rtmp_pageurl
URL halaman web tempat media dibenamkan. Secara lalai tiada nilai akan dihantar.
rtmp_playpath
Pengecam aliran untuk dimainkan atau untuk diterbitkan. Pilihan ini mengatasi parameter yang ditentukan
di URI.
rtmp_subscribe
Nama strim langsung untuk dilanggan. Secara lalai tiada nilai akan dihantar. Ia hanya
dihantar jika pilihan ditentukan atau jika rtmp_live ditetapkan untuk hidup.
rtmp_swfhash
Cincang SHA256 bagi fail SWF nyahmampat (32 bait).
rtmp_swfsize
Saiz fail SWF yang dinyahmampat, diperlukan untuk Pengesahan SWF.
rtmp_swfurl
URL pemain SWF untuk media. Secara lalai tiada nilai akan dihantar.
rtmp_swfverify
URL ke fail swf pemain, hitung cincang/saiz secara automatik.
rtmp_tcurl
URL strim sasaran. Lalai kepada proto://host[:port]/app.
Contohnya untuk membaca dengan ffplay sumber multimedia bernama "sampel" daripada aplikasi
"vod" daripada pelayan RTMP "myserver":
ffplay rtmp://myserver/vod/sample
Untuk menerbitkan ke pelayan yang dilindungi kata laluan, luluskan laluan main dan nama apl secara berasingan:
ffmpeg -re -i -f flv -rtmp_playpath some/long/path -rtmp_app long/app/name rtmp://username:password@myserver/
rtmpe
Protokol Mesej Masa Nyata Disulitkan.
Protokol Mesej Masa Nyata Disulitkan (RTMPE) digunakan untuk penstriman multimedia
kandungan dalam primitif kriptografi standard, yang terdiri daripada kunci Diffie-Hellman
pertukaran dan HMACSHA256, menghasilkan sepasang kekunci RC4.
rtmps
Protokol Mesej Masa Nyata melalui sambungan SSL yang selamat.
Protokol Pemesejan Masa Nyata (RTMPS) digunakan untuk menstrim kandungan multimedia merentas
sambungan yang disulitkan.
rtmpt
Protokol Mesej Masa Nyata disalurkan melalui HTTP.
Protokol Mesej Masa Nyata yang disalurkan melalui HTTP (RTMPT) digunakan untuk penstriman
kandungan multimedia dalam permintaan HTTP untuk melintasi tembok api.
rtmpte
Protokol Mesej Masa Nyata Disulitkan yang disalurkan melalui HTTP.
Protokol Mesej Masa Nyata Disulitkan yang disalurkan melalui HTTP (RTMPTE) digunakan untuk
penstriman kandungan multimedia dalam permintaan HTTP untuk melintasi tembok api.
rtmpts
Protokol Mesej Masa Nyata disalurkan melalui HTTPS.
Protokol Mesej Masa Nyata yang disalurkan melalui HTTPS (RTMPTS) digunakan untuk penstriman
kandungan multimedia dalam permintaan HTTPS untuk melintasi tembok api.
libsmbclient
libsmbclient membenarkan seseorang untuk memanipulasi sumber rangkaian CIFS/SMB.
Sintaks berikut diperlukan.
smb://[[domain:]pengguna[:kata laluan@]]pelayan[/share[/path[/file]]]
Protokol ini menerima pilihan berikut.
timeout
Tetapkan tamat masa dalam milisaat operasi I/O soket yang digunakan oleh aras rendah asas
operasi. Secara lalai ia ditetapkan kepada -1, yang bermaksud tamat masa tidak ditentukan.
memotong
Potong fail sedia ada semasa menulis, jika ditetapkan kepada 1. Nilai 0 menghalang pemangkasan.
Nilai lalai ialah 1.
kumpulan kerja
Tetapkan kumpulan kerja yang digunakan untuk membuat sambungan. Secara lalai kumpulan kerja tidak ditentukan.
Untuk maklumat lanjut lihat:http://www.samba.org/>.
libsh
Protokol Pemindahan Fail Selamat melalui libssh
Baca daripada atau tulis ke sumber jauh menggunakan protokol SFTP.
Sintaks berikut diperlukan.
sftp://[pengguna[:kata laluan]@]pelayan[:port]/path/to/remote/resource.mpeg
Protokol ini menerima pilihan berikut.
timeout
Tetapkan tamat masa operasi I/O soket yang digunakan oleh operasi aras rendah yang mendasari. Oleh
lalai ia ditetapkan kepada -1, yang bermaksud tamat masa tidak ditentukan.
memotong
Potong fail sedia ada semasa menulis, jika ditetapkan kepada 1. Nilai 0 menghalang pemangkasan.
Nilai lalai ialah 1.
kunci_pribadi
Tentukan laluan fail yang mengandungi kunci peribadi untuk digunakan semasa kebenaran. Oleh
lalai libssh mencari kunci dalam ~ / .ssh / direktori.
Contoh: Mainkan fail yang disimpan pada pelayan jauh.
ffplay sftp://user:password@server_address:22/home/user/resource.mpeg
librtmp rtmp, rtmpe, rtmps, rtmpt, rtmpte
Protokol Mesej Masa Nyata dan variannya disokong melalui librtmp.
Memerlukan kehadiran pengepala dan perpustakaan librtmp semasa konfigurasi. Anda perlu
konfigurasikan binaan secara eksplisit dengan "--enable-librtmp". Jika didayakan ini akan menggantikan
protokol RTMP asli.
Protokol ini menyediakan kebanyakan fungsi klien dan beberapa fungsi pelayan yang diperlukan untuk menyokong
RTMP, RTMP terowong dalam HTTP (RTMPT), RTMP yang disulitkan (RTMPE), RTMP melalui SSL/TLS (RTMPS) dan
varian terowong jenis yang disulitkan ini (RTMPTE, RTMPTS).
Sintaks yang diperlukan ialah:
:// [: ][/ ][/ ]
di mana rtmp_proto ialah salah satu rentetan "rtmp", "rtmpt", "rtmpe", "rtmps", "rtmpte",
"rtmpts" sepadan dengan setiap varian RTMP, dan server, pelabuhan, aplikasi and laluan bermain mempunyai
maksud yang sama seperti yang dinyatakan untuk protokol asli RTMP. pilihan mengandungi senarai ruang-
pilihan borang yang diasingkan utama=val.
Lihat halaman manual librtmp (man 3 librtmp) untuk mendapatkan maklumat lanjut.
Contohnya, untuk menstrim fail dalam masa nyata ke pelayan RTMP menggunakan ffmpeg:
ffmpeg -re -i myfile -f flv rtmp://myserver/live/mystream
Untuk memainkan aliran yang sama menggunakan ffplay:
ffplay "rtmp://myserver/live/mystream live=1"
[email protected]
Protokol Pengangkutan masa nyata.
Sintaks yang diperlukan untuk URL RTP ialah: rtp://nama hos[:pelabuhan][?pilihan=val...]
pelabuhan menentukan port RTP untuk digunakan.
Pilihan URL berikut disokong:
ttl=n
Tetapkan nilai TTL (Time-To-Live) (untuk multicast sahaja).
rtcpport=n
Tetapkan port RTCP jauh kepada n.
localrtpport=n
Tetapkan port RTP tempatan kepada n.
localrtcpport=n'
Tetapkan port RTCP tempatan kepada n.
pkt_size=n
Tetapkan saiz paket maks (dalam bait) kepada n.
sambung=0|1
Lakukan "connect()" pada soket UDP (jika ditetapkan kepada 1) atau tidak (jika ditetapkan kepada 0).
sumber=ip[,ip]
Senaraikan alamat IP sumber yang dibenarkan.
blok=ip[,ip]
Senaraikan alamat IP sumber yang tidak dibenarkan (disekat).
write_to_source=0|1
Hantar paket ke alamat sumber paket yang diterima terkini (jika ditetapkan kepada 1) atau ke a
alamat jauh lalai (jika ditetapkan kepada 0).
localport=n
Tetapkan port RTP tempatan kepada n.
Ini adalah pilihan yang tidak digunakan lagi. Sebaliknya, localrtpport sepatutnya digunakan.
Nota PENTING:
1. Jika rtcpport tidak ditetapkan port RTCP akan ditetapkan kepada nilai port RTP tambah 1.
2. Jika localrtpport (port RTP tempatan) tidak ditetapkan mana-mana port yang tersedia akan digunakan untuk
port RTP dan RTCP tempatan.
3. Jika localrtcpport (port RTCP tempatan) tidak ditetapkan ia akan ditetapkan kepada port RTP tempatan
nilai tambah 1.
rtsp
Protokol Penstriman Masa Nyata.
RTSP bukan secara teknikal pengendali protokol dalam libavformat, ia adalah demuxer dan muxer. The
demuxer menyokong kedua-dua RTSP biasa (dengan data dipindahkan melalui RTP; ini digunakan oleh cth
Apple dan Microsoft) dan Real-RTSP (dengan data dipindahkan melalui RDT).
Muxer boleh digunakan untuk menghantar aliran menggunakan RTSP ANNOUNCE kepada pelayan yang menyokongnya
(kini Pelayan Penstriman Darwin dan Mischa Spiegelmock
<https://github.com/revmischa/rtsp-server>).
Sintaks yang diperlukan untuk url RTSP ialah:
rtsp:// [: ]/
Pilihan boleh ditetapkan pada ffmpeg/ffplay baris arahan, atau tetapkan dalam kod melalui "AVOption" atau dalam
"avformat_open_input".
Pilihan berikut disokong.
permulaan_jeda
Jangan mula memainkan strim dengan serta-merta jika ditetapkan kepada 1. Nilai lalai ialah 0.
rtsp_transport
Tetapkan protokol pengangkutan RTSP.
Ia menerima nilai berikut:
udp Gunakan UDP sebagai protokol pengangkutan yang lebih rendah.
tcp Gunakan TCP (bersambung dalam saluran kawalan RTSP) sebagai pengangkutan yang lebih rendah
protokol.
udp_multicast
Gunakan multicast UDP sebagai protokol pengangkutan yang lebih rendah.
http
Gunakan terowong HTTP sebagai protokol pengangkutan yang lebih rendah, yang berguna untuk lulus
proksi.
Berbilang protokol pengangkutan yang lebih rendah mungkin ditentukan, dalam kes itu ia dicuba satu
pada satu masa (jika persediaan satu gagal, yang seterusnya dicuba). Untuk muxer, hanya
tcp and udp pilihan disokong.
rtsp_flags
Tetapkan bendera RTSP.
Nilai berikut diterima:
penapis_src
Terima paket hanya dari alamat rakan sebaya yang dirundingkan dan pelabuhan.
mendengar
Bertindak sebagai pelayan, mendengar sambungan masuk.
prefer_tcp
Cuba TCP untuk pengangkutan RTP dahulu, jika TCP tersedia sebagai pengangkutan RTP RTSP.
Nilai lalai ialah tiada.
jenis_media yang dibenarkan
Tetapkan jenis media untuk diterima daripada pelayan.
Bendera berikut diterima:
video
audio
data
Secara lalai ia menerima semua jenis media.
min_port
Tetapkan port UDP tempatan minimum. Nilai lalai ialah 5000.
max_port
Tetapkan port UDP tempatan maksimum. Nilai lalai ialah 65000.
timeout
Tetapkan tamat masa maksimum (dalam saat) untuk menunggu sambungan masuk.
Nilai -1 bermaksud tak terhingga (lalai). Pilihan ini membayangkan rtsp_flags bersedia untuk
mendengar.
reorder_queue_size
Tetapkan bilangan paket untuk penimbal untuk pengendalian paket yang disusun semula.
tamat masa
Tetapkan tamat masa I/O soket TCP dalam mikrosaat.
Ejen pengguna
Gantikan pengepala Ejen Pengguna. Jika tidak dinyatakan, ia lalai kepada libavformat
rentetan pengecam.
Apabila menerima data melalui UDP, demuxer cuba menyusun semula paket yang diterima (kerana mereka
mungkin tiba di luar pesanan, atau paket mungkin hilang sama sekali). Ini boleh dilumpuhkan dengan menetapkan
kelewatan demuxing maksimum kepada sifar (melalui medan "max_delay" AVFormatContext).
Apabila menonton strim Real-RTSP berbilang bit dengan ffplay, strim untuk dipaparkan boleh
dipilih dengan "-vst" n dan "-ast" n untuk video dan audio masing-masing, dan boleh dihidupkan
lalat dengan menekan "v" dan "a".
Contoh
Contoh berikut semuanya menggunakan ffplay and ffmpeg alat.
· Tonton strim melalui UDP, dengan kelewatan penyusunan semula maksimum selama 0.5 saat:
ffplay -max_delay 500000 -rtsp_transport udp rtsp://server/video.mp4
· Tonton strim terowong melalui HTTP:
ffplay -rtsp_transport http rtsp://server/video.mp4
· Hantar strim dalam masa nyata ke pelayan RTSP, untuk ditonton oleh orang lain:
ffmpeg -re -i -f rtsp -muxdelay 0.1 rtsp://server/live.sdp
· Terima strim dalam masa nyata:
ffmpeg -rtsp_flags dengar -i rtsp://ownaddress/live.sdp
sap
Protokol Pengumuman Sesi (RFC 2974). Ini secara teknikalnya bukan pengendali protokol
libavformat, ia adalah muxer dan demuxer. Ia digunakan untuk memberi isyarat aliran RTP, oleh
mengumumkan SDP untuk aliran secara berkala pada port yang berasingan.
perempuan
Sintaks untuk url SAP yang diberikan kepada muxer ialah:
sap:// [: ][? ]
Paket RTP dihantar ke destinasi di pelabuhan pelabuhan, atau ke port 5004 jika tiada port
dinyatakan. pilihan ialah senarai dipisahkan "&". Pilihan berikut disokong:
announce_addr=alamat
Tentukan alamat IP destinasi untuk menghantar pengumuman ke. Jika ditinggalkan, yang
pengumuman dihantar ke alamat multicast pengumuman SAP yang biasa digunakan
224.2.127.254 (sap.mcast.net), atau ff0e::2:7ffe jika destinasi ialah alamat IPv6.
announce_port=pelabuhan
Tentukan port untuk menghantar pengumuman, lalai kepada 9875 jika tidak dinyatakan.
ttl=ttl
Tentukan masa untuk nilai hidup untuk pengumuman dan paket RTP, lalai kepada 255.
same_port=0 | 1
Jika ditetapkan kepada 1, hantar semua aliran RTP pada pasangan port yang sama. Jika sifar (lalai), semua
aliran dihantar pada port unik, dengan setiap aliran pada port 2 nombor lebih tinggi daripada
sebelumnya. VLC/Live555 memerlukan ini untuk ditetapkan kepada 1, untuk dapat menerima strim.
Timbunan RTP dalam libavformat untuk menerima memerlukan semua strim dihantar secara unik
Pelabuhan.
Contoh baris arahan mengikuti.
Untuk menyiarkan aliran pada subnet tempatan, untuk menonton dalam VLC:
ffmpeg -re -i -f sap sap://224.0.0.255?same_port=1
Begitu juga, untuk menonton dalam ffplay:
ffmpeg -re -i -f sap sap://224.0.0.255
Dan untuk menonton dalam ffplay, melalui IPv6:
ffmpeg -re -i -f sap sap://[ff0e::1:2:3:4]
Demuxer
Sintaks untuk url SAP yang diberikan kepada demuxer ialah:
sap://[ ][: ]
alamat ialah alamat berbilang siaran untuk mendengar pengumuman pada, jika ditinggalkan, lalai
224.2.127.254 (sap.mcast.net) digunakan. pelabuhan ialah port yang didengari, 9875 jika
ditinggalkan.
Demuxers mendengar pengumuman mengenai alamat dan pelabuhan yang diberikan. Sekali an
pengumuman diterima, ia cuba menerima aliran tertentu itu.
Contoh baris arahan mengikuti.
Untuk memainkan semula strim pertama yang diumumkan pada alamat berbilang siaran SAP biasa:
ffplay sap://
Untuk memainkan semula strim pertama yang diumumkan pada satu alamat berbilang hantaran SAP IPv6 lalai:
ffplay sap://[ff0e::2:7ffe]
sctp
Protokol Penghantaran Kawalan Strim.
Sintaks URL yang diterima ialah:
sctp:// : [? ]
Protokol menerima pilihan berikut:
mendengar
Jika ditetapkan kepada sebarang nilai, dengar sambungan masuk. Sambungan keluar dilakukan oleh
lalai.
max_streams
Tetapkan bilangan maksimum strim. Secara lalai tiada had ditetapkan.
srtp
Protokol Pengangkutan Masa Nyata Selamat.
Pilihan yang diterima ialah:
srtp_in_suite
srtp_out_suite
Pilih suite pengekodan input dan output.
Nilai yang disokong:
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
Tetapkan parameter pengekodan input dan output, yang dinyatakan oleh base64 yang dikodkan
perwakilan blok binari. 16 bait pertama blok binari ini digunakan sebagai
kunci induk, 14 bait berikut digunakan sebagai garam induk.
subfail
Ekstrak secara hampir segmen fail atau aliran lain. Aliran asas mestilah
boleh dicari.
Pilihan yang diterima:
permulaan
Mulakan mengimbangi segmen yang diekstrak, dalam bait.
akhir Tamat mengimbangi segmen yang diekstrak, dalam bait.
Contoh:
Ekstrak bab daripada fail DVD VOB (sektor permulaan dan tamat yang diperoleh secara luaran dan
didarab dengan 2048):
subfail,,mula,153391104,akhir,268142592,,:/media/dvd/VIDEO_TS/VTS_08_1.VOB
Mainkan fail AVI terus dari arkib TAR:
subfail,,mula,183241728,akhir,366490624,,:archive.tar
tcp
Protokol Kawalan Transmisi.
Sintaks yang diperlukan untuk url TCP ialah:
tcp:// : [? ]
pilihan mengandungi senarai pilihan &-diasingkan borang utama=val.
Senarai pilihan yang disokong berikut.
dengar=1 | 0
Dengar sambungan masuk. Nilai lalai ialah 0.
tamat masa=mikrodetik
Tetapkan tamat masa ralat peningkatan, dinyatakan dalam mikrosaat.
Pilihan ini hanya berkaitan dalam mod baca: jika tiada data tiba lebih daripada masa ini
selang, menimbulkan ralat.
listen_timeout=milisaat
Tetapkan tamat masa mendengar, dinyatakan dalam milisaat.
Contoh berikut menunjukkan cara untuk menyediakan sambungan TCP mendengar dengan ffmpeg, Yang merupakan
kemudian diakses dengan ffplay:
ffmpeg -i -f tcp:// : ?dengar
ffplay tcp:// :
tls
Keselamatan Lapisan Pengangkutan (TLS) / Lapisan Soket Selamat (SSL)
Sintaks yang diperlukan untuk url TLS/SSL ialah:
tls:// : [? ]
Parameter berikut boleh ditetapkan melalui pilihan baris arahan (atau dalam kod melalui "AVOption"):
ca_file, cafile=nama fail
Fail yang mengandungi sijil akar sijil autoriti (CA) untuk dianggap sebagai dipercayai. Jika
pustaka TLS yang dipautkan mengandungi lalai yang mungkin tidak perlu ditentukan
pengesahan berfungsi, tetapi tidak semua perpustakaan dan tetapan mempunyai lalai terbina dalam. The
fail mestilah dalam format OpenSSL PEM.
tls_verify=1 | 0
Jika didayakan, cuba sahkan rakan sebaya yang kami sedang berkomunikasi. Perhatikan, jika menggunakan
OpenSSL, pada masa ini hanya memastikan bahawa sijil rakan sebaya ditandatangani oleh salah satu daripada
sijil akar dalam pangkalan data CA, tetapi ia tidak mengesahkan bahawa
sijil sebenarnya sepadan dengan nama hos yang kami cuba sambungkan. (Dengan GnuTLS,
nama hos juga disahkan.)
Ini dilumpuhkan secara lalai kerana ia memerlukan pangkalan data CA untuk disediakan oleh
pemanggil dalam banyak kes.
fail_sijil, sijil=nama fail
Fail yang mengandungi sijil untuk digunakan dalam berjabat tangan dengan rakan sebaya. (Bila
beroperasi sebagai pelayan, dalam mod mendengar, ini lebih kerap diperlukan oleh rakan sebaya, manakala
sijil pelanggan sahaja diberi mandat dalam persediaan tertentu.)
fail_kunci, kunci =nama fail
Fail yang mengandungi kunci peribadi untuk sijil.
dengar=1 | 0
Jika didayakan, dengar sambungan pada port yang disediakan dan anggap peranan pelayan dalam
jabat tangan dan bukannya peranan klien.
Contoh baris arahan:
Untuk mencipta pelayan TLS/SSL yang menyediakan aliran input.
ffmpeg -i -f tls:// : ?dengar&cert= &kunci=
Untuk memainkan balik strim daripada pelayan TLS/SSL menggunakan ffplay:
ffplay tls:// :
udp
Protokol Datagram Pengguna.
Sintaks yang diperlukan untuk URL UDP ialah:
udp:// : [? ]
pilihan mengandungi senarai pilihan &-diasingkan borang utama=val.
Sekiranya threading didayakan pada sistem, penimbal bulat digunakan untuk menyimpan
data masuk, yang membolehkan seseorang mengurangkan kehilangan data akibat overrun penimbal soket UDP.
. saiz_fifo and overrun_nonfatal pilihan adalah berkaitan dengan penimbal ini.
Senarai pilihan yang disokong berikut.
saiz_penampan=saiz
Tetapkan saiz penimbal soket maksimum UDP dalam bait. Ini digunakan untuk menetapkan sama ada
menerima atau menghantar saiz penimbal, bergantung pada kegunaan soket. Lalai ialah
64KB. Lihat juga saiz_fifo.
localport=pelabuhan
Gantikan port UDP tempatan untuk diikat.
localaddr=addr
Pilih alamat IP tempatan. Ini berguna contohnya jika menghantar multicast dan hos mempunyai
berbilang antara muka, di mana pengguna boleh memilih antara muka yang hendak dihantar
menyatakan alamat IP antara muka itu.
pkt_size=saiz
Tetapkan saiz dalam bait paket UDP.
guna semula=1 | 0
Benarkan atau tidak benarkan penggunaan semula soket UDP secara eksplisit.
ttl=ttl
Tetapkan masa untuk nilai hidup (untuk multicast sahaja).
sambung =1 | 0
Mulakan soket UDP dengan "connect()". Dalam kes ini, alamat destinasi
tidak boleh ditukar dengan ff_udp_set_remote_url kemudian. Jika alamat destinasi bukan
diketahui pada permulaan, pilihan ini juga boleh ditentukan dalam ff_udp_set_remote_url. ini
membolehkan mengetahui alamat sumber untuk paket dengan getsockname, dan membuat
menulis kembali dengan AVERROR(ECONNREFUSED) jika "destinasi tidak dapat dicapai" diterima.
Untuk menerima, ini memberi faedah hanya menerima paket daripada yang ditentukan
alamat/pelabuhan rakan sebaya.
sumber=alamat[,alamat]
Hanya terima paket yang dihantar ke kumpulan multicast daripada salah satu IP penghantar yang ditentukan
alamat.
blok=alamat[,alamat]
Abaikan paket yang dihantar ke kumpulan multicast daripada alamat IP penghantar yang ditentukan.
saiz_fifo=unit
Tetapkan saiz penimbal bulat penerima UDP, dinyatakan sebagai beberapa paket dengan saiz
daripada 188 bait. Jika tidak dinyatakan lalai kepada 7*4096.
overrun_nonfatal=1 | 0
Bertahan sekiranya UDP menerima penampan pekeliling yang dilampaui. Nilai lalai ialah 0.
tamat masa=mikrodetik
Tetapkan tamat masa ralat peningkatan, dinyatakan dalam mikrosaat.
Pilihan ini hanya berkaitan dalam mod baca: jika tiada data tiba lebih daripada masa ini
selang, menimbulkan ralat.
siaran=1 | 0
Benarkan atau tidak benarkan penyiaran UDP secara eksplisit.
Ambil perhatian bahawa penyiaran mungkin tidak berfungsi dengan betul pada rangkaian yang mengalami ribut penyiaran
perlindungan.
Contoh
· Penggunaan ffmpeg untuk menstrim melalui UDP ke titik akhir jauh:
ffmpeg -i -f udp:// :
· Penggunaan ffmpeg untuk menstrim dalam format mpegts melalui UDP menggunakan 188 paket UDP bersaiz, menggunakan a
penimbal input besar:
ffmpeg -i -f mpegts udp:// : ?pkt_size=188&buffer_size=65535
· Penggunaan ffmpeg untuk menerima melalui UDP dari titik akhir jauh:
ffmpeg -i udp://[ ]: ...
unix
Soket tempatan Unix
Sintaks yang diperlukan untuk URL soket Unix ialah:
unix://
Parameter berikut boleh ditetapkan melalui pilihan baris arahan (atau dalam kod melalui "AVOption"):
timeout
Tamat masa dalam ms.
mendengar
Cipta soket Unix dalam mod mendengar.
Gunakan ffmpeg-protocols dalam talian menggunakan perkhidmatan onworks.net