С FFmpeg yu, закодированным в H264 и инкапсулированным в ts, видео нашло отрезок времени короче? - PullRequest
0 голосов
/ 09 февраля 2020

С помощью FFmpeg mov непосредственно в yuv, затем yuv, закодированный в H264 и инкапсулированный в ts, ts видео найдено меньше, чем продолжительность времени видео mov. Я хочу знать, как изменить команду FFmpeg для решения проблемы сокращения продолжительности видео

Команда ffmpeg выглядит следующим образом:

ffmpeg-i 00.mov 01.yuv
ffmpeg-s 1920x800-pix_fmt yuv420p-i 01.yuv-vcodec libx264-x264-params fps=24 02.h264.
ffmpeg-i 02.h264 03.ts

Используйте ffprobe для просмотра 00 Детали .mov следующие:

Duration: 00: 12: 14.17, start: 0.000000, bitrate: 6361 kb/s
     Stream #0:0 (eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x800 [SAR 1: 1 DAR 12: 5], 6162 kb/s, 24 fps, 24 tbr, 24 tbn, 48 tbc (default)
     Metadata:
       handler_name: VideoHandler
       encoder: libx264
     Stream # 0:1 (eng): Audio: mp3 (. mp3 / 0x33706D2E), 44100 Hz, stereo, fltp, 191 kb/s (default)
     Metadata:
       handler_name: SoundHandler

Используйте ffprobe для просмотра 03.ts подробности следующие:

Duration: 00:11:44.80, start: 1.440000, bitrate: 2242 kb/s
   Program 1 
     Metadata:
       service_name: Service01
       service_provider: FFmpeg
     Stream #0:0 [0x100]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p (tv, progressive), 1920x800 [SAR 1:1 DAR 12: 5], 25 fps, 25 tbr, 90k tbn, 50 tbc

Как изменить команду ffmpeg, чтобы сделать длительность видео ts равна продолжительности видео mov

1 Ответ

0 голосов
/ 09 февраля 2020

Во 2-й команде добавьте -framerate 24 для ввода. Сигнализация x264 fps влияет только на управление скоростью, а не на любые метаданные частоты кадров в исходном формате .264.

Кроме того, добавьте - c copy в 3-й команде, чтобы избежать перекодирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...