LINUX.ORG.RU

[ffmpeg] mapping

 


0

1

Что-то разобраться не могу. Есть файл 1

Input #0, avi, from '1.avi':
  Metadata:
    encoder         : VirtualDubMod 1.5.10.2 (build 2540/release)
  Duration: 00:24:10.53, start: 0.000000, bitrate: 2128 kb/s
    Stream #0.0: Video: mpeg4, yuv420p, 704x396 [PAR 1:1 DAR 16:9], 23.98 tbr, 23.98 tbn, 23.98 tbc
    Stream #0.1: Audio: mp3, 48000 Hz, stereo, s16, 128 kb/s
    Stream #0.2: Audio: mp3, 48000 Hz, stereo, s16, 128 kb/s
И файл 2
Input #1, srt, from '1.srt':
  Duration: N/A, start: 4.470000, bitrate: N/A
    Stream #1.0: Subtitle: srt
Их надо сшить в один .mp4, при этом выбросить дорожку 0.2 и на её место положить субтитры. Делаю
ffmpeg -y -i 1.avi -i 1.srt ${opts} ./1.mp4 -map 0.0:0.0 -map 0.1:0.1 -map 1.0:0.2
Но получаю
Number of stream maps must match number of output streams
Что я делаю не так?

Deleted

Последнее исправление: fargred (всего исправлений: 1)

Скорее всего, дорожку с субтитрами надо создавать вручную:

ffmpeg -y -i 1.avi -i 1.srt ${opts} -map 0.0 -map 0.1 -map 1.0 -vcodec copy -acodec copy ./1.mp4 -scodec copy -newsubtitle

NightSpamer
()
Ответ на: комментарий от NightSpamer

Спасибо, теперь потоки определяются нормально, но mp4 в ffmpeg вообще может держать кодеки субтитров?

[mp4 @ 0xbeb090] track 2: could not find tag, codec not currently supported in container
…
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
  Stream #1.0 -> #0.2
Could not write header for output file #0 (incorrect codec parameters ?)
И это он выдаёт на все возможные -scodec, кроме dvdsub, хотя последний не определяется mplayer как субтитропоток вообще.
$ ffmpeg -codecs | grep ES
 DES    ass             Advanced SubStation Alpha subtitle
 DES    dvbsub          DVB subtitles
 DES    dvdsub          DVD subtitles
 DES    srt             SubRip subtitle
 DES    xsub            DivX subtitles (XSUB)
У людей вроде как mp4 раньше понимал srt, надо было просто ffmpeg собрать с поддержкой srt. Но она там сейчас по умолчанию. По крайней мере, в дженте. Пробовал контейнер avi, но он сообщил, что может только xsub и упал на ошибке перекодирования исходного потока.

Deleted
()
Ответ на: комментарий от Deleted

ffmpeg точно не умеет конвертить текстовый srt в графический xsub.
Странно, но субтитры не получилось запихнуть ни в avi ни в mp4... только в mkv и mpegts. Которые так-же не конвертятся в avi/mp4.
Тестил на media-video/ffmpeg-0.8.3

NightSpamer
()
Ответ на: комментарий от NightSpamer

Похоже придётся mencoder подрубать. Или кого ещё посоветуете?

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.