Bagian media WebRTC mencakup cara mengakses hardware yang mampu menangkap video dan audio, seperti kamera dan mikrofon, serta cara media melakukan streaming Anda. Ini juga mencakup media tampilan, yang merupakan cara aplikasi melakukan pengambilan gambar.
Perangkat media
Semua kamera dan mikrofon yang didukung oleh browser dapat diakses dan
dikelola melalui objek navigator.mediaDevices. Aplikasi dapat mengambil
daftar perangkat terhubung saat ini dan juga 
mendengarkan perubahan, karena banyak
kamera dan mikrohpone terhubung melalui 
USB dan dapat dihubungkan dan
terputus selama 
siklus hidup aplikasi. Karena status media
dapat berubah setiap saat, disarankan agar aplikasi mendaftar untuk
perubahan perangkat untuk 
menangani perubahan dengan benar.
Batasan
Saat mengakses perangkat media, sebaiknya berikan informasi batasan sebanyak mungkin. Meskipun memungkinkan untuk membuka kamera {i>default<i} dan dengan batasan sederhana, alat ini mungkin memberikan streaming media yang jauh dari yang paling optimal untuk aplikasi.
Batasan spesifik ditentukan dalam objek MediaTrackConstraint, satu untuk
audio dan satu untuk video. Atribut dalam objek ini berjenis
ConstraintLong, ConstraintBoolean, ConstraintDouble, atau
ConstraintDOMString. Ini bisa berupa nilai tertentu (mis., angka,
boolean atau string), rentang (LongRange atau DoubleRange dengan nilai minimum dan
nilai maksimum) atau objek dengan definisi ideal atau exact. Untuk
nilai tertentu, {i>browser<i} akan mencoba 
memilih sesuatu yang sedekat mungkin.
Untuk rentang, nilai terbaik dalam rentang tersebut akan digunakan. Jika exact adalah
ditentukan, hanya streaming media yang sama persis dengan batasan tersebut yang akan
dikembalikan.
Near
// Camera with a resolution as close to 640x480 as possible
{
    "video": {
        "width": 640,
        "height": 480
    }
}
Rentang
// Camera with a resolution in the range 640x480 to 1024x768
{
    "video": {
        "width": {
            "min": 640,
            "max": 1024
        },
        "height": {
            "min": 480,
            "max": 768
        }
    }
}
Persis
// Camera with the exact resolution of 1024x768
{
    "video": {
        "width": {
            "exact": 1024
        },
        "height": {
            "exact": 768
        }
    }
}
Untuk menentukan konfigurasi sebenarnya yang 
dimiliki oleh {i>track<i} {i>media<i},
kita dapat memanggil MediaStreamTrack.getSettings() yang menampilkan
MediaTrackSettings saat ini diterapkan.
Anda juga dapat memperbarui batasan trek dari perangkat media yang
telah dibuka, dengan memanggil applyConstraints() pada trek. Hal ini memungkinkan
mengonfigurasi ulang perangkat media tanpa harus menutup
feed yang sudah ada.
Tampilkan media
Sebuah aplikasi yang ingin melakukan pengambilan dan perekaman layar
harus menggunakan Display Media API. Fungsi getDisplayMedia() (yang merupakan bagian
dari navigator.mediaDevices mirip dengan getUserMedia() dan digunakan untuk
tujuan membuka konten tampilan (atau sebagian, seperti
jendela). MediaStream yang ditampilkan berfungsi sama seperti saat menggunakan
getUserMedia().
Batasan untuk getDisplayMedia() berbeda dengan batasan yang digunakan untuk reguler
input video atau audio.
{
    video: {
        cursor: 'always' | 'motion' | 'never',
        displaySurface: 'application' | 'browser' | 'monitor' | 'window'
    }
}
Snipet kode di atas menunjukkan bagaimana batasan khusus untuk perekaman layar berhasil. Perhatikan bahwa ini mungkin tidak didukung oleh semua browser yang memiliki dukungan media.
Streaming dan lagu
MediaStream mewakili streaming konten media, yang terdiri dari trek
(MediaStreamTrack) audio dan video. Anda dapat mengambil 
semua lintasan dari
MediaStream dengan memanggil MediaStream.getTracks(), yang menampilkan array
Objek MediaStreamTrack.
MediaStreamTrack
MediaStreamTrack memiliki properti kind yang berupa audio atau video,
menunjukkan jenis media yang diwakilinya. Setiap trek dapat dibisukan dengan mengalihkan
properti enabled miliknya. Trek memiliki properti Boolean remote yang menunjukkan
jika berasal dari RTCPeerConnection dan berasal dari peer jarak jauh.