Если у меня есть несколько URL-ссылок для видео или аудио, как я могу определить, какая из них имеет лучшее качество? Есть ли информация заголовка, которая говорит мне о качестве видео - даже тип контента отличается?

Пример для видео:

  • Тип содержимого первого URL: video/3gpp
  • Тип содержимого второго URL: video/mp4

Пример для Аудио:

  • Тип содержимого первого URL-адреса: audio/3gpp
  • Тип содержимого второго URL: audio/webm

Можно ли сравнить их по качеству - что я получаю из заголовка информации? Я прошу это для URL-адресов только с аудио и URL-адреса только с видео (аудио и видео).

2 ответа2

2

Заголовки HTTP вряд ли скажут вам больше, чем формат видео или аудио контейнера. Но большинство современных форматов видео и аудио контейнеров могут иметь любое количество различных качеств видео или аудио, хранящихся в них. Чтобы узнать, насколько качественными являются фактические данные внутри файла контейнера, вам нужно начать загрузку файла и посмотреть на внутренние заголовки файла (не на заголовки HTTP).

Тем не менее, поскольку ваш пример включает в себя типы контента 3GPP HTTP, я бы предположил, что они имеют более низкое качество, чем версии MPEG-4 и WebM, потому что видео 3GPP изначально было разработано как видео с низкой скоростью передачи битов, которое может легко передаваться медленно современные стандарты) ранние сети 3G для переворачивания телефонов с крошечными экранами низкого разрешения, как в 2006 году.

1

Этот ответ является лишь продолжением ответа Спиффа на реальных примерах.

Например, здесь я выбираю это видео « Запуск вашего первого Docker-контейнера в Azure» из Channel 9 MSDN. У этого есть четыре формата файла того видео. Что я сделал? Ответ: Используйте curl --head чтобы показать ТОЛЬКО заголовок этого HTTP/GET-запроса, который содержит Content-Type и Content-Length. Тогда скачай те. Используйте ffmpeg -i чтобы показать информацию о кодировке загруженного видеофайла (ниже приведены только важные разделы). Вот три из них:

  1. Низкое качество MP4:
$> curl --head "https://sec.ch9.ms/ch9/7a84/8269395e-c022-4672-8b43-3cf1b5d57a84/jay-gordon-docker-in-azure.mp4"
Content-Length: 42,102,244
Content-Type: video/mp4

$> ffmpeg -i jay-gordon-docker-in-azure.mp4
Duration: 00:17:54.05, start: 0.000000, bitrate: 313 kb/s
Stream #0:0(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 640x360, 210 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
Metadata:
  handler_name    : ?Mainconcept Video Media Handler
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 96 kb/s (default)
Metadata:
  handler_name    : #Mainconcept MP4 Sound Media Handler
  1. Среднее качество MP4:
$> curl --head "https://sec.ch9.ms/ch9/7a84/8269395e-c022-4672-8b43-3cf1b5d57a84/jay-gordon-docker-in-azure_mid.mp4"
Content-Length: 129,621,802
Content-Type: video/mp4

$> ffmpeg -i jay-gordon-docker-in-azure_mid.mp4
Duration: 00:17:54.05, start: 0.000000, bitrate: 965 kb/s
Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720, 828 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
Metadata:
  handler_name    : ?Mainconcept Video Media Handler
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
  handler_name    : #Mainconcept MP4 Sound Media Handler
  1. Высокое качество MP4:
$> curl --head "https://sec.ch9.ms/ch9/7a84/8269395e-c022-4672-8b43-3cf1b5d57a84/jay-gordon-docker-in-azure_high.mp4"
Content-Length: 385,374,160
Content-Type: video/mp4

$> ffmpeg -i jay-gordon-docker-in-azure_high.mp4
Duration: 00:17:54.05, start: 0.000000, bitrate: 2870 kb/s
Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, 2701 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
Metadata:
  handler_name    : ?Mainconcept Video Media Handler
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 160 kb/s (default)
Metadata:
  handler_name    : #Mainconcept MP4 Sound Media Handler

Сравните эти три команды вывода. По мере повышения качества Content-Length увеличивается битрейт аудио и видео. Таким образом, можно предположить качество видео из Content-Length в curl --head но HTTP-заголовок не обеспечивает полное кодирование видео. Чтобы узнать больше о кодировании видео, нужно скачать файл. Только URL не может предоставить эту информацию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .