закодируйте часть файла и одновременно добавьте субтитры для этой части. Я использую:

ffmpeg -ss 00:02:00 -t 00:00:30 -i "путь / к / вводу" -c:v libvpx -crf 5 -b:v 3M -c: библиотека libvorbis -vf "ass = путь / задница "output.webm"

он показывает, что он загружает субтитры, но в выводе они не существуют (субтитры:0 КБ). Насколько я могу сказать, часть субтитров не работает с -ss? (Или игнорирует -ss и пытается добавить целые подпрограммы, начиная с 00:00:00 .ass до 00:02:00 видеопотока).

Единственный способ сделать это - перекодировать весь файл, а затем использовать:

ffmpeg -ss 00:02:00 -i "output.webm" -t 00:00:30 -c:v copy -c: копия "new_output.webm"

сохранить то, что я хотел. Я что-то упускаю или просто невозможно сделать то, что я хочу, все в одном?

Надеюсь, то, что я написал, имело смысл и спасибо.


Output #0, webm, to 'target/test.webm':
  Metadata:
    encoder         : Lavf55.37.101
    Stream #0:0: Video: vp8 (libvpx), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 2500 kb/s, 1k tbn, 23.81 tbc (default) (forced)
    Stream #0:1: Audio: vorbis (libvorbis), 44100 Hz, stereo, fltp (default) (forced)
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> libvpx)
  Stream #0:1 -> #0:1 (aac -> libvorbis)
Press [q] to stop, [?] for help
frame=  953 fps= 22 q=0.0 Lsize=    6990kB time=00:00:40.02 bitrate=1430.6kbits/s dup=0 drop=5
video:6499kB audio:464kB subtitle:0kB other streams:0kB global headers:4kB muxing overhead: 0.376779%

1 ответ1

1

Если вы поставите -ss после -i , ffmpeg сначала закодирует весь файл до указанной вами точки, и только затем записывает в вывод.

Это означает, что субтитры начнутся в правильной точке.

Кроме того, вы должны подумать о том, чтобы поставить -t после -i потому что он используется здесь как опция вывода, то есть вывод только 30 секунд.

ffmpeg -i "path/to/input" -ss 00:02:00 -t 30 -c:v libvpx -crf 5 -b:v 3M -c:a libvorbis -vf "ass=path/ass" "output.webm"

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