Как объединить WebM и Opus для генерации MP4?

Я использую следующую команду, но она дает неправильный вывод.

ffmpeg -i video.webm -i audio.opus -c:v copy -c:a aac -strict experimental output.mp4

выход:

ffmpeg version 1.2.6-7:1.2.6-1~trusty1 Copyright (c) 2000-2014 the FFmpeg developers
  built on Apr 26 2014 18:52:58 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
  configuration: --arch=amd64 --disable-stripping --enable-avresample --enable-pthreads --enable-runtime-cpudetect --extra-version='7:1.2.6-1~trusty1' --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static
  libavutil      52. 18.100 / 52. 18.100
  libavcodec     54. 92.100 / 54. 92.100
  libavformat    54. 63.104 / 54. 63.104
  libavdevice    53.  5.103 / 53.  5.103
  libavfilter     3. 42.103 /  3. 42.103
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
Input #0, matroska,webm, from 'video.webm':
  Duration: 00:00:04.92, start: 0.000000, bitrate: 243 kb/s
    Stream #0:0: Video: vp8, yuv420p, 640x480, SAR 1:1 DAR 4:3, 18 fps, 18 tbr, 1k tbn, 1k tbc (default)
Input #1, ogg, from 'audio.opus':
  Duration: 00:00:05.16, start: 0.000000, bitrate: 32 kb/s
    Stream #1:0: Audio: opus, 48000 Hz, stereo, s16
[mp4 @ 0x647940] track 0: could not find tag, codec not currently supported in container
Output #0, mp4, to 'output.mp4':
  Metadata:
    encoder         : Lavf54.63.104
    Stream #0:0: Video: vp8, yuv420p, 640x480 [SAR 1:1 DAR 4:3], q=2-31, 18 fps, 90k tbn, 1k tbc (default)
    Stream #0:1: Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, stereo, fltp, 128 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #1:0 -> #0:1 (libopus -> aac)
Could not write header for output file #0 (incorrect codec parameters ?): Operation not permitted
28
задан bummi
16.02.2023 11:58 Количество просмотров материала 2518
Распечатать страницу

2 ответа

контейнеры WebM обычно содержат видео VP8 или VP9. Однако формат контейнера MP4 не поддерживает видео VP8 или VP9, по крайней мере по данным регистрирующего органа.

в вашей команде вы пытаетесь скопировать битовый поток видео, и, очевидно, это не удастся:

кодек не поддерживается в container

у вас есть два варианта:

  1. перекодировать видео в H. 264 с использованием -c:v libx264.
  2. выберите другой контейнер вывода, например Matroska (.mkv), но обратите внимание, что это не будет совместимо для видео HTML5.

см. также ссылка MDN на поддерживаемые форматы видео HTML и этот пост супер пользователя о том, как конвертировать видео для HTML5:что куча простых скриптов мне нужен HTML5-совместимого "видео для всех"?

11
отвечен slhck 2023-02-17 19:46
ffmpeg -i video.webm -i audio.opus -c:v copy -c:a aac -strict experimental output.mp4

это должно выглядеть примерно так.

ffmpeg -i audio.opus -i vid.webm  -c:v copy -c:a opus -strict experimental output6.webm

замените aac с opus и двумя файлами вокруг с opus, находящимися впереди (я думаю), он должен работать.

2
отвечен Ringo_0 2023-02-17 22:03

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх