Запись аудио и видео с помощью FFmpeg

Я попытался записать аудио и видео одновременно с помощью FFmpeg. Однако возникло несколько проблем. Вот мой код:

ffmpeg -f alsa -ar 24000 -i plughw:1 -acodec aac -strict experimental -f video4linux2 -y -r 4 -i /dev/video0 -vf "drawtext=fontfile=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf:expansion=strftime:text='%Y-%m-%d %H:%M:%S': fontcolor=white:box=1:boxcolor=black@0.8:x=w-text_w:y=h-line_h" -vframes 20 -vcodec mpeg4 out.mp4

и результат, который я скопировал показано ниже:

ffmpeg version N-61372-g1306359 Copyright (c) 2000-2014 the FFmpeg developers
  built on Mar 19 2014 22:59:34 with gcc 4.6 (Debian 4.6.3-14+rpi1)
  configuration: --enable-cross-compile --cross-prefix= --arch=armel --target-os=linux --prefix=/usr --enable-gpl --enable-libfreetype --enable-nonfree --enable-libaacplus --extra-cflags=-I/usr/include --extra-ldflags=-L/usr/lib --extra-libs=-ldl
  libavutil      52. 66.101 / 52. 66.101
  libavcodec     55. 52.102 / 55. 52.102
  libavformat    55. 34.101 / 55. 34.101
  libavdevice    55. 11.100 / 55. 11.100
  libavfilter     4.  3.100 /  4.  3.100
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
Guessed Channel Layout for  Input Stream #0.0 : stereo
Input #0, alsa, from 'plughw:1':
  Duration: N/A, start: 1395351824.134003, bitrate: 768 kb/s
    Stream #0:0: Audio: pcm_s16le, 24000 Hz, stereo, s16, 768 kb/s
[video4linux2,v4l2 @ 0x21c1840] The driver changed the time per frame from 1/4 to 1/5
Input #1, video4linux2,v4l2, from '/dev/video0':
  Duration: N/A, start: 15130.155369, bitrate: 24576 kb/s
    Stream #1:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 24576 kb/s, 5 fps, 5 tbr, 1000k tbn, 1000k tbc
[Parsed_drawtext_0 @ 0x21c14f0] expansion=strftime is deprecated.
libaacplus: bad aac setting: br:128000, AACch:2, AACsr:24000
[libaacplus @ 0x21c6370] libaacplus doesn't support this output format!
Output #0, mp4, to 'out.mp4':
    Stream #0:0: Video: mpeg4, yuv420p, 640x480, q=2-31, 200 kb/s, 90k tbn, 4 tbc
    Stream #0:1: Audio: aac, 24000 Hz, stereo, s16, 128 kb/s
Stream mapping:
  Stream #1:0 -> #0:0 (rawvideo -> mpeg4)
  Stream #0:0 -> #0:1 (pcm_s16le -> libaacplus)
Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height

Это показывает, что libaacplus doesn't support this output format!. Он работал очень хорошо, пока я менял выходной формат в MPG. Однако в конечном выходном файле не было звука. Я не уверен, какие части идут не так. Кто-нибудь может мне помочь?

тут libfaac поддержка mp4?

11
задан VaFancy
11.11.2022 4:20 Количество просмотров материала 3604
Распечатать страницу

1 ответ

вариант размещения имеет значение:

ffmpeg [global options] [input options] -i input [output options] output

ты сказал ffmpeg использовать -acodec aac -strict experimental в качестве параметров ввода для вашего устройства v4l2, но это было проигнорировано. Поскольку ffmpeg дадут другие поддерживаемые кодеры приоритет над родной AAC кодер он выбрал libaacplus, который не совместим с нужным вам обеспечен. Это кодировщик AAC-HE, но я предполагаю, что вам нужен нормальный формат AAC-LC. Смотрите ffmpeg и AAC руководство по кодированию для более подробной информации.

вы придется двигаться -acodec aac -strict experimental можно сделать вывод:

ffmpeg -f alsa -ar 24000 -i plughw:1 -f v4l2 -r 4 -i /dev/video0 -vf "drawtext=fontfile=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf:expansion=strftime:text='%Y-%m-%d %H\:%M\:%S': fontcolor=white:box=1:boxcolor=black@0.8:x=w-text_w:y=h-line_h" -vframes 20 -vcodec mpeg4 -acodec aac -strict experimental out.mp4
1
отвечен LordNeckbeard 2022-11-12 12:08

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

Ваш ответ

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

Имя
Вверх