NB Streams - це кількість потоків у медіафайлі. NB - це скорочення від "number" (число), тож значення 2 означає, що файл містить 2 потоки. Поле NB Frames використовує таке саме скорочення для кількості кадрів в одному потоці.
Медіафайл - це контейнер, який зберігає один або кілька потоків разом із метаданими. У цьому полі потік - це не онлайн-відео і не пряма трансляція. Потік - це одна частина вмісту, наприклад зображення або звук.
Що вважається потоком
Це поле походить з FFmpeg, програмного проєкту для читання та запису медіафайлів. FFmpeg розрізняє 5 типів потоків, і NB Streams рахує їх усі разом:
video: рухомі зображення та статичні зображення, наприклад обкладинкаaudio: звук, наприклад друга мова або коментарsubtitle: текст для глядача, наприклад субтитри однією мовоюdata: інша інформація, яка не є зображенням, звуком або субтитрамиattachment: окремий файл у контейнері, наприклад шрифт для субтитрів
NB Streams не вказує типи потоків. Щоб побачити тип кожного потоку, подивіться на його Codec Type.
Як виглядають значення
Значення - це ціле число без одиниці вимірювання. Засіб читання файлів ffprobe з проєкту FFmpeg виводить рядок на кшталт nb_streams=3. Число залежить від вмісту файлу:
1: лише один потік, наприклад пісня у форматі FLAC без зображення2: відео з одним потоком зображення та одним потоком звуку або пісня з однією приєднаною картинкою3або більше: відео з додатковими звуковими потоками, потоками субтитрів або вкладеними файлами
Кожен потік також має порядковий номер (індекс), починаючи з 0. Тому файл із 3 потоками має індекси 0, 1 і 2.
Формат файлу може обмежувати кількість та типи потоків. Наприклад, FFmpeg записує рівно 1 звуковий потік у файл FLAC і може додавати зображення. Натомість специфікація MKV показує приклад файлу з 7 звуковими потоками, які там називають доріжками.
Які файли містять його
Ви бачите NB Streams в аудіо- та відеофайлах, які FFmpeg може відкрити, наприклад MP4, MOV, AVI, MKV, MP3, FLAC і WAV. Засіб читання ffprobe також відкриває зображення. Зазвичай FFmpeg розглядає одне зображення як один відеопотік, тому ffprobe виводить 1.
Для деяких фотографій ffprobe виводить більше ніж 1 потік. Фото HEIC може зберігати зображення як сітку з окремих тайлів. FFmpeg може вказати кожен тайл як окремий потік, тому сітка 2 на 2 тайли рахується як щонайменше 4 потоки.
FFmpeg не має засобу читання для форматів документів, таких як PDF і DOCX. Тому документи зазвичай не містять цього поля.
Звідки походить значення
У самому файлі немає поля з назвою NB Streams. FFmpeg відкриває файл, знаходить кожен потік і додає його до списку. NB Streams - це кількість елементів у цьому списку.
Чому це важливо
NB Streams дає змогу швидко перевірити, що містить файл. Відеофайл зі значенням 1 зазвичай не має або зображення, або звуку.
Значення, вищe за очікуване, може вказувати на додаткові мови, субтитри, зображення або вкладені файли. Плеєр зазвичай обирає лише деякі з цих потоків, тож ви можете не помітити інші під час відтворення.
Значення також може змінюватися під час конвертації файлу. Без додаткових параметрів програма ffmpeg бере по 1 потоку кожного типу і пропускає потоки даних та вкладень. Тому менше значення може означати, що якийсь потік зник.