#ffmpeg #command-line-arguments #mpeg #hevc #transport-stream
#ffmpeg #аргументы командной строки #mpeg #hevc #транспортный поток
Вопрос:
Я хотел бы мультиплексировать видео, закодированное в формате HEVC, в MPEG-Transportstream.
У меня есть видео, закодированное с помощью кодировщика x265.
x265 raw.y4m --output coded.hevc
Я хочу мультиплексировать это видео в транспортный поток MPEG.
Я пробовал это, среди прочего, таким образом:
ffmpeg -fflags genpts -i coded.hevc -c:v copy -f mpegts transportstream.ts
К сожалению, появляется это сообщение об ошибке, и transportstream.ts пуст.
[mpegts @ 0x1fa76a0] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
[mpegts @ 0x1fa76a0] first pts value must be set
av_interleaved_write_frame(): Invalid data found when processing input
Для моей цели необходимо выполнить два шага отдельно. Не могли бы вы помочь мне, пожалуйста, узнать правильные параметры для мультиплексирования видео?
Заранее спасибо.
Ответ №1:
Работает двухэтапный процесс:
ffmpeg -i coded.hevc -c copy coded.mp4
ffmpeg -i coded.mp4 -c:v copy transportstream.ts
Комментарии:
1. После выполнения этого метки времени представления видео являются хронологическими для некоторого декодирования, хотя они не должны. Из-за этого большая часть декодера не может свободно воспроизводить видео.