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


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Для mp4 отсутствуют кодеки, как решить проблему?  (Прочитано 1001 раз)

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

Оффлайн serii

  • Автор темы
  • Любитель
  • *
  • Сообщений: 76
    • Просмотр профиля
Хочу склеить два видео, инструкцию взял на оф сайте
ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate1.ts
ffmpeg -i input2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate2.ts
ffmpeg -i "concat:intermediate1.ts|intermediate2.ts" -c copy -bsf:a aac_adtstoasc output.mp4

Но проблема с кодеком
ffmpeg -i выводитffmpeg version 2.8.11-0ubuntu0.16.04.1 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609
  configuration: --prefix=/usr --extra-version=0ubuntu0.16.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x145e180] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none, 1280x960, 96 kb/s): unspecified pixel format
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '23.user1.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf56.40.101
  Duration: 00:05:19.02, start: 0.000000, bitrate: 223 kb/s
    Stream #0:0(und): Video: h264 (avc1 / 0x31637661), none, 1280x960, 96 kb/s, 15 fps, 15 tbr, 15360 tbn, 30720 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
At least one output file must be specified

Покапался в этой статье http://help.ubuntu.ru/wiki/ffmpeg, но так и не понял как добавить кодек.
А очень нужно склеить эти два видео.
Может кто-то знает как решить проблему?

Оффлайн БТР

  • Заслуженный пользователь
  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4804
    • Просмотр профиля
ffmpeg у вас установлен, какая с ним проблема? что непонятно в этой инструкции?
ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate1.ts
ffmpeg -i input2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate2.ts
ffmpeg -i "concat:intermediate1.ts|intermediate2.ts" -c copy -bsf:a aac_adtstoasc output.mp4

не можете подставить вместо input1.mp4 и input2.mp4 свои файлы?

Оффлайн serii

  • Автор темы
  • Любитель
  • *
  • Сообщений: 76
    • Просмотр профиля
ffmpeg у вас установлен, какая с ним проблема? что непонятно в инструкции?
Да установлен, непонятно Could not find codec parameters for stream

Оффлайн БТР

  • Заслуженный пользователь
  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4804
    • Просмотр профиля
а это вас не смущает?
At least one output file must be specified

Оффлайн serii

  • Автор темы
  • Любитель
  • *
  • Сообщений: 76
    • Просмотр профиля
At least one output file must be specified
Хотя бы один выходной файл должен быть указан
Команда для вывода информации о файле
ffmpeg -i 22.dd.mp4И в конце вывода сказано, что хотя бы один выходной файл должен быть указан.

Оффлайн БТР

  • Заслуженный пользователь
  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4804
    • Просмотр профиля
если два файла в одинаковом формате:
ffmpeg -i "concat:11.dd.mp4|22.dd.mp4" -c copy output.mp4

Оффлайн serii

  • Автор темы
  • Любитель
  • *
  • Сообщений: 76
    • Просмотр профиля
если два файла в одинаковом формате:
ffmpeg -i "concat:11.dd.mp4|22.dd.mp4" -c copy output.mp4
Такое решение подходит для файлов mpg, для mp4 - решение прописанное в шапке.
http://trac.ffmpeg.org/wiki/Concatenate

Сперва я так и делал, на выходе получился новый файл с продолжительностью первого, но теперь меня волнует,
почему выводится At least one output file must be specified
, на форумах нашел такую же ошибку, но так пытались соединить, конвертировать или делать другие операции с файлами. У меня же просто выводит информацию о файле ffmpeg -i name.mp4 -hide_banner
-hide_banner - чтобы скрыть информацию о самой программе при выводе

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5119
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Команда для вывода информации
Вы что, инструкции читаете по диагонали? Для вывода информации есть ffprobe. Что касается параметра -i то он обозначает входной файл
Цитировать
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
при перекодировании также должен указываться и выходной.
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн serii

  • Автор темы
  • Любитель
  • *
  • Сообщений: 76
    • Просмотр профиля
Вы что, инструкции читаете по диагонали? Для вывода информации есть ffprobe. Что касается параметра -i то он обозначает входной файл
Цитировать
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
при перекодировании также должен указываться и выходной.
[/quote]

Я читал информацию с этого сайта https://losst.ru/poleznye-komandy-ffmpeg
там нагляднее, но видимо с ошибками.
Ну тогда остается проблема с кодеками, Could not find codec parameters for stream 0 нужно задать кодеки файлу mp4

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5119
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Да какая разница где читать?
синтаксис:

$ ffmpeg [опции источника] -i [источник] [основные опции] [кодеки] [преемник]
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Igor_ubuntu

  • Любитель
  • *
  • Сообщений: 91
    • Просмотр профиля
но теперь меня волнует, почему выводится..
At least one output file must be specifiedХотя бы один выходной файл должен быть указан

Команда для вывода информации о файле
ffmpeg -i 22.dd.mp4
И в конце вывода сказано, что хотя бы один выходной файл должен быть указан.

ffmpeg -i (как уже сказали выше) для сбора инфы о файле, строго говоря, не предназначена.
Опция -i задает входной файл, а дальше после нее должны идти другие опции (для кодирования ..).
Так как кроме -i вы ничего не задаете, то выводится инфо о вход. файле, а после ффмпег вам заявляет, что надо с выходным файлом определиться, а то кина  не будет. Оно-ж думает, что вы знаете о ffprobe и, задавая ffmpeg -i, кодировать собрались.

Оффлайн serii

  • Автор темы
  • Любитель
  • *
  • Сообщений: 76
    • Просмотр профиля
Спасибо за столь расширенное объяснение, теперь мне стало гораздо понятнее. Теперь помогите добавить нужные кодеки, чтобы больше не появлялось:
Could not find codec parameters for stream 0
« Последнее редактирование: 18 Август 2017, 23:11:24 от Azure »

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 1394
    • Просмотр профиля
Если установлена ffmpeg, то и кодеки установлены, просто по зависимостям.
Команда
ffmpeg -codecs | less -nдаст список доступных для неё кодеков.
Пётр.

Оффлайн Igor_ubuntu

  • Любитель
  • *
  • Сообщений: 91
    • Просмотр профиля
Спасибо за столь расширенное объяснение, теперь мне стало гораздо понятнее. Теперь помогите добавить нужные кодеки, чтобы больше не появлялось:
Код:
Could not find codec parameters for stream 0

С чего вы взяли, что у вас отсутствуют кодеки ?
Там говорится о параметрах кодека, а именно о
Цитировать

unspecified pixel format


Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none, 1280x960, 96 kb/s): unspecified pixel format
И предлагают сделать
Цитировать
Consider increasing the value for the 'analyzeduration' and 'probesize' options
то-бишь добавить в команду

ffmpeg -probesize 2147483647 -analyzeduration 2147483647 -i ....

Кому-то помогает, кому-то нет.
Либо битые файлы, либо проблемы самого ffmpeg

Скачайте статик ффмпег (если ваш ффмпег ниже чем 3.3.3) https://johnvansickle.com/ffmpeg/ и попробуйте с ним
(распакуйте архив, перейдите в распакованный каталог и из него выполните:)
./ffmpeg -i /home/user/Video/f1.mp4 -vcodec copy -bsf:v h264_mp4toannexb -f mpegts f1.ts
./ffmpeg -i /home/user/Video/f2.mp4 -vcodec copy -bsf:v h264_mp4toannexb -f mpegts f2.ts
./ffmpeg -i "concat:/home/user/Video/f1.ts|/home/user/Video/f2.ts" -vcodec copy -bsf:a aac_adtstoasc FINAL.mp4

Я проделал эти манипуляции с двумя .mp4 - прекрасно работает.
Я надеюсь, у объединяемых вами  2 файлов одинаковые параметры ?
« Последнее редактирование: 19 Август 2017, 11:25:18 от Igor_ubuntu »

Оффлайн serii

  • Автор темы
  • Любитель
  • *
  • Сообщений: 76
    • Просмотр профиля
Я проделал эти манипуляции с двумя .mp4 - прекрасно работает.
Я надеюсь, у объединяемых вами  2 файлов одинаковые параметры ?

Спасибо вам огромно, вот видите, когда человек доходчиво объясняет, я же не силен в видеомонтаже, просто временно понадобилось склеить два видеофайла.

 

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