Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: ffmpeg маппинг 2 аута (видео и субтитры отдельно)  (Прочитано 1552 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Baloven

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Доброго

Не могу найти ответ на свой вопрос:
имеется файл m2ts 1 видео, + 6 аудио + 1 субтитры
мне нужно на выходе получить mp4 video= 0:0 audio 0:1 и отдельным файлом субтитры.
можно ли это сделать одной командой?
инфо файла под спойлером
(Нажмите, чтобы показать/скрыть)
я просто не могу понять как мэпингом на выход подать только то что нужно, а не все стримы (например как вданном примере мне на выходе аудио 1-6 не нужны и тогда зачем на них время процессорное тратить)

Оффлайн ALiEN175

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4708
  • Capture the truth
    • Просмотр профиля
что пробовали, что не получилось?
ASUS P5K-C :: Intel Xeon E5450 :: 8 GB RAM :: Nvidia 8500GT :: XFCE
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA3150 :: XFCE

Оффлайн Baloven

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
У меня скрипт BASH конвертирует "что-то на входе" в HEVC + AAC на выходе. сейчас столкнулся с тем, что конвертация идет всех стримов из входного файла и руганулся на субтитры, которые мне в программу (Ministra/Staslker)нужно подать отдельным файлом,
вот и хочу дописать скрипт чтоб бралась только одна (указанная в парамтрах скрипта) звуковая дорожка (стрим)и 1 стрим субтитров в отдельный файл

Оффлайн zg_nico

  • Заслуженный пользователь
  • Модератор форума
  • Старожил
  • *
  • Сообщений: 3513
  • Nil mortalibus arduum est
    • Просмотр профиля
У меня скрипт BASH конвертирует
так вопрос в том и состоял, что хотелось бы видеть команды, которые Вы даете, чтобы понимать что Вам советовать. Скрипт в студию! :)
Thunderobot G150-D2: Intel SkyLake Core i7-6700HQ 2.60GHz, 8Gb DDR4 2133 MHz, Intel HD530, NVidia GeForce GTX 960M 2Gb.  Ubuntu 16.04 64x [Unity], KUbuntu 18.04 64x.

Оффлайн ALiEN175

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4708
  • Capture the truth
    • Просмотр профиля
* у меня есть программа, но не работает. Как сделать так, чтоб заработало?

про ваш скрипт BASH никто ничего не знает. Поэтому постарайтесь предоставить максимально подробную информацию. А пока что почитайте - https://trac.ffmpeg.org/wiki/Map
ASUS P5K-C :: Intel Xeon E5450 :: 8 GB RAM :: Nvidia 8500GT :: XFCE
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA3150 :: XFCE

Оффлайн Baloven

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Скрипт запускается из текущей директории с файлом (можно чуток подправить и брать конечно полный путь, но не в этом суть - мне и так пока нормально) и создает/калдет перекодированный файл в подпапку с именем кокека
скрипт, дописывается и некоторый "задел" можно видеть (например проверка языка аудио-дорожки получается в переменную, но язык устанвливается пока что жестко на русский.... за скрипт просьба особо не пинать - вопрос не в самом скрипте
(Нажмите, чтобы показать/скрыть)

Пользователь добавил сообщение 18 Июль 2019, 05:21:01:
* у меня есть программа, но не работает. Как сделать так, чтоб заработало?

про ваш скрипт BASH никто ничего не знает. Поэтому постарайтесь предоставить максимально подробную информацию. А пока что почитайте - https://trac.ffmpeg.org/wiki/Map
за ссылку спасибо,
насколько я понял, если не ошибаюсь, мне нужно добавить меппинг для указанного файла:
-map 0:0 -map 0:1 -map 0:7и таким образом у меня должны остаться в OUT останется только то что мне нужно, а как -map 0:7(субтитрам) назначить сохранение в отдельный файл.
раньше (лет несколько назад) я вроде как для таких целей вроде как какие-то алиесы для каналов вывода делал и по этим алиесам сохранял, но найти не могу и давно это было

Пользователь добавил сообщение 18 Июль 2019, 05:33:33:
не нашел по поводу алиесов, но в принципе, то что мне нужно указано в предложенной доке начиная с примера 5, т.е. взять 0 и 1 стримы - указать опции конвертирования для них и указать выходной файл, далее мэппинго для субтитров 7 стрима - опции конвертирования и аналогично для него выходной файл... чуть позже закончится текущая порация конвертации на серве - проверю и готовую команду выложу, если все ок

Пользователь добавил сообщение 18 Июль 2019, 05:38:30:
PS
собственно если поток видео в файле 1 - то указанным скриптов выше - можно номер стрима для него определить, чтобы переменной поставить в ffmpeg аналогично и субтитры, а вот для звука прийдется все же указывать как-то... или брать первую попавшуюся дорожку или жестко задавать - для текущего файла - 1-3 это русские озвучки, остальные на других языках, но в m2ts эта инфа не записана :( да и не факт, что указание языка в исходном файле правильное -именно потому у меня в скрипте ставится принудительно русский для дорожки звука

Пользователь добавил сообщение 18 Июль 2019, 06:44:27:
рано обрадовался :(
и все-таки :( где-то ошибка:
ffmpeg -i 00000.m2ts -map 0:p:1:0 -vcodec libx264 -profile:v high -preset superfast -r 25 -g 25 -color_primaries bt709 -color_trc bt709 -colorspace bt709 -slices 4 -map 0:p:1:0:1 -acodec aac -f mp4 ./test.mp4 -map 0:p:1:0:7 ./test.subвывод:
ffmpeg version 4.1.3-0york1~16.04 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.11) 20160609
  configuration: --prefix=/usr --extra-version='0york1~16.04' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-nonfree --enable-libfdk-aac --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
[mpegts @ 0x55b8d06145c0] Failed to open codec in avformat_find_stream_info
[mpegts @ 0x55b8d06145c0] start time for stream 7 is not set in estimate_timings_from_pts
[mpegts @ 0x55b8d06145c0] Could not find codec parameters for stream 7 (Subtitle: hdmv_pgs_subtitle (pgssub) ([144][0][0][0] / 0x0090)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, mpegts, from '00000.m2ts':
  Duration: 02:22:33.41, start: 600.000000, bitrate: 25959 kb/s
  Program 1
    Stream #0:0[0x1011]: Video: vc1 (Advanced) (VC-1 / 0x312D4356), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc
    Stream #0:1[0x1100]: Audio: dts (DTS-HD MA) ([134][0][0][0] / 0x0086), 48000 Hz, 5.1(side), s32p (24 bit)
    Stream #0:2[0x1101]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 448 kb/s
    Stream #0:3[0x1102]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 192 kb/s
    Stream #0:4[0x1103]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 640 kb/s
    Stream #0:5[0x1104]: Audio: truehd (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), s32 (24 bit)
    Stream #0:6[0x1104]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 640 kb/s
    Stream #0:7[0x1200]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
File './test.mp4' already exists. Overwrite ? [y/N] y
Automatic encoder selection failed for output stream #1:0. Default encoder for format microdvd (codec none) is probably disabled. Please choose an encoder manually.
Error selecting an encoder for stream 1:0
« Последнее редактирование: 18 Июль 2019, 06:44:27 от Baloven »

Оффлайн бамбук

  • Активист
  • *
  • Сообщений: 541
  • Kubuntu 20.04 LTS x86_64
    • Просмотр профиля
Chuwi LapBook 14.1   ревизия ноутбука-3.0

Оффлайн Baloven

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
А пока что почитайте - https://trac.ffmpeg.org/wiki/Map
хе хе
http://zenway.ru/uploads/knigi/ffmpeg-ru-man.pdf
на человеческом языке
да я вроде и по нечеловечески прочитал, а ошибка-то где? там про мапы то же самое и про программы - про которые надо сказать в первой доке вообще лишь упомянуто - просто увидел блок "Programm" и сам вспомнил что его указывать при мэппинге нужно при обращении

Оффлайн бамбук

  • Активист
  • *
  • Сообщений: 541
  • Kubuntu 20.04 LTS x86_64
    • Просмотр профиля
если вопрос про субтитры то
есть и такой софт : http://zenway.ru/category/audiovideo/next/2
Chuwi LapBook 14.1   ревизия ноутбука-3.0

Оффлайн Baloven

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
если вопрос про субтитры то
есть и такой софт : http://zenway.ru/category/audiovideo/next/2
речь не про субтитры - отдельно субтитры отделяются из конкретно этого файла ffmpeg -i 00000.m2st -map 0:7 ./test.subречь про "сделать всю операцию одной строкой (перекодирование+получение на выходе 2х файлов перекодированного видео с звуком и отдельно субтитры

 

Страница сгенерирована за 0.094 секунд. Запросов: 26.