Я преобразовал файл .ts в .mp4 используя следующую команду:

ffmpeg -i hls-360p.ts -codec copy -bsf:a aac_adtstoasc hls-360p.mp4

Несмотря на то, что никакого перекодирования не предполагалось, VLC указывает на немного отличающуюся строку видеокодека:

  • Входной файл .ts : H264 - MPEG-4 AVC (part 10)(h264)
  • Выходной файл .mp4 : H264 - MPEG-4 AVC (part 10)(avc1)

Какая разница?


Скриншот входного файла:

Скриншот входного файла


Скриншот выходного файла:

Скриншот выходного файла

1 ответ1

2

Из типов видео H.264,

avc1 указывает поток битов H.264 без стартовых кодов

Контейнерный формат MP4 хранит данные H.264 без стартовых кодов. Вместо этого каждому NALU предшествует поле длины, которое дает длину NALU в байтах. Размер поля длины может варьироваться, но обычно составляет 1, 2 или 4 байта.

И h264 указывает поток битов H.264 с кодами запуска.

Битовые потоки H.264, которые передаются по радиоканалу или содержатся в программных или транспортных потоках MPEG-2, или записываются на HD-DVD, форматируются, как описано в Приложении B Рекомендации МСЭ-Т. H.264. Согласно этой спецификации поток битов состоит из последовательности блоков уровня абстракции сети (NALU), каждый из которых имеет префикс с начальным кодом, равным 0x000001 или 0x00000001.

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