Можно ли изменить громкость без перекодирования с помощью ffmpeg?

У меня возник этот вопрос, потому что я использовал следующую команду с ffmpeg:

ffmpeg -i input.wav -filter:a "volume=0.2" output.wav

Следуя документации здесь: https://trac.ffmpeg.org/wiki/AudioVolume

Однако, когда я создал новый файл, размер вывода был вдвое меньше размера ввода, и битрейт звуковой дорожки также был уменьшен.

Итак, мои вопросы:

  1. Разве битрейт должен уменьшаться с уменьшением и увеличением громкости вот так?
  2. Можно ли изменить громкость без перекодировки с помощью ffmpeg?

2 ответа

Решение

Хорошо, как мне любезно объяснил кто-то из Reddit, я должен иметь возможность изменять громкость без перекодирования, однако мой входной кодек был pcm_f321e, а настройка по умолчанию для выходного кодека для ffmpeg без каких-либо спецификаторов - pcm_f161e.

Первый pcm_f321e 32-битный, поэтому он хранит больше информации, чем второй, 16-битный.

Итак, ответ: 1. Да, потому что в этом случае я неосознанно перекодировал кодек с меньшим количеством информации.

  1. Собственно нет, это все равно перекодировка. Лучше всего использовать тот же код, который я использовал выше, с дополнительным спецификатором:
ffmpeg -i input.wav -filter:a "volume=0.2" -c:a pcm_f32le output.wav

Кодек для ввода и вывода должен быть таким же, как в 32-битном или 16-битном кодеке, иначе мне придется добавить спецификатор, который мне показал, как это сделать, тем же человеком на Reddit.

Однако это все равно перекодируется всякий раз, когда вы добавляете фильтр.

Я не эксперт, но способ увеличения громкости, похоже, не вызывает проблем .. например, битрейт звука такой же ... Размер файла тоже похож.

      ffmpeg -i ac.mp4 -af volume=7 -vcodec copy ac2.mp4

Примечание. Ниже приводится вопрос программирования, связанный с C #, но кто-то упоминает вышеупомянутое увеличение / уменьшение громкости звука с помощью FFmpeg.

Для документации

ffmpeg -? не показывает много. Если вы это сделаете ffmpeg -? | grep "vol" тогда все, что он упоминает, это "-vol volume". И если вы сделаете ffmpeg -? | grep "-af" тогда все, что он говорит, это -af filter_graph set audio filters" Никакого упоминания о том, какие аудио фильтры вы можете использовать.

Но в разговоре с некоторыми экспертами по ffmpeg они упомянули о документации ..

"
Есть справочная страница ffmpeg-filters, а также -h filter=NAME, которая показывает вам краткую информацию о параметрах, используемых для фильтра.

В сети у вас тоже есть ffmpeg-all https://www.ffmpeg.org/ffmpeg-all.html

https://ffmpeg.org/ffmpeg-filters.html#volume
"


Убедитесь сами, в чем разница между файлами из mediainfo и DIR.

Обратите внимание, что оба файла, исходный и целевой, имеют одинаковый размер - 195 МБ. Источник - 195166205 байт, целевой - 195837608 байт. так что очень небольшая разница в размерах.

Заметь

нет разницы в битрейте

      C:\Users\User\Downloads\ac>mediainfo ac.mp4 | find /i "bit"
Overall bit rate                         : 383 kb/s
Bit rate                                 : 252 kb/s
Bit depth                                : 8 bits
Bits/(Pixel*Frame)                       : 0.010
Bit rate mode                            : Constant
Bit rate                                 : 128 kb/s

C:\Users\User\Downloads\ac>mediainfo ac2.mp4 | find /i "bit"
Overall bit rate                         : 384 kb/s
Bit rate                                 : 252 kb/s
Bit depth                                : 8 bits
Bits/(Pixel*Frame)                       : 0.010
Bit rate mode                            : Constant
Bit rate                                 : 128 kb/s

C:\Users\User\Downloads\ac>

Вот все данные mediainfo для каждого файла, так что вы можете решить для себя, сможете ли вы по ним увидеть какие-либо существенные различия, которые имели место при изменении громкости.

      C:\Users\User\Downloads\ac>mediainfo ac.mp4
General
Complete name                            : ac.mp4
Format                                   : MPEG-4
Format profile                           : Base Media
Codec ID                                 : isom (isom/iso2/avc1/mp41)
File size                                : 186 MiB
Duration                                 : 1 h 7 min
Overall bit rate                         : 383 kb/s
Writing application                      : Lavf58.20.100

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High@L3.2
Format settings                          : CABAC / 1 Ref Frames
Format settings, CABAC                   : Yes
Format settings, Reference frames        : 1 frame
Codec ID                                 : avc1
Codec ID/Info                            : Advanced Video Coding
Duration                                 : 1 h 7 min
Bit rate                                 : 252 kb/s
Width                                    : 1 366 pixels
Height                                   : 768 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 24.000 FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.010
Stream size                              : 122 MiB (66%)
Writing library                          : x264 core 157 r2945 72db437
Encoding settings                        : cabac=1 / ref=1 / deblock=1:0:0 / analyse=0x3:0x3 / me=dia / subme=1 / psy=1 / psy_rd=1.00:0.00 / mixed_ref
=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=4 / lookahead_threads=4 /
 sliced_threads=1 / slices=4 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=0 / weightp=1 / keyint=250 / keyint_
min=24 / scenecut=40 / intra_refresh=0 / rc=crf / mbtree=0 / crf=26.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Codec configuration box                  : avcC

Audio
ID                                       : 2
Format                                   : AAC LC SBR
Format/Info                              : Advanced Audio Codec Low Complexity with Spectral Band Replication
Commercial name                          : HE-AAC
Format settings                          : NBC
Codec ID                                 : mp4a-40-5
Duration                                 : 1 h 7 min
Duration_LastFrame                       : -23 ms
Bit rate mode                            : Constant
Bit rate                                 : 128 kb/s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 48.0 kHz
Frame rate                               : 23.438 FPS (2048 SPF)
Compression mode                         : Lossy
Stream size                              : 62.2 MiB (33%)
Default                                  : Yes
Alternate group                          : 1



C:\Users\User\Downloads\ac>mediainfo ac2.mp4
General
Complete name                            : ac2.mp4
Format                                   : MPEG-4
Format profile                           : Base Media
Codec ID                                 : isom (isom/iso2/avc1/mp41)
File size                                : 187 MiB
Duration                                 : 1 h 7 min
Overall bit rate                         : 384 kb/s
Writing application                      : Lavf58.31.104

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High@L3.2
Format settings                          : CABAC / 1 Ref Frames
Format settings, CABAC                   : Yes
Format settings, Reference frames        : 1 frame
Codec ID                                 : avc1
Codec ID/Info                            : Advanced Video Coding
Duration                                 : 1 h 7 min
Bit rate                                 : 252 kb/s
Width                                    : 1 366 pixels
Height                                   : 768 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 24.000 FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.010
Stream size                              : 122 MiB (66%)
Writing library                          : x264 core 157 r2945 72db437
Encoding settings                        : cabac=1 / ref=1 / deblock=1:0:0 / analyse=0x3:0x3 / me=dia / subme=1 / psy=1 / psy_rd=1.00:0.00 / mixed_ref
=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=4 / lookahead_threads=4 /
 sliced_threads=1 / slices=4 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=0 / weightp=1 / keyint=250 / keyint_
min=24 / scenecut=40 / intra_refresh=0 / rc=crf / mbtree=0 / crf=26.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Codec configuration box                  : avcC

Audio
ID                                       : 2
Format                                   : AAC LC
Format/Info                              : Advanced Audio Codec Low Complexity
Codec ID                                 : mp4a-40-2
Duration                                 : 1 h 7 min
Duration_LastFrame                       : -19 ms
Bit rate mode                            : Constant
Bit rate                                 : 128 kb/s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 48.0 kHz
Frame rate                               : 46.875 FPS (1024 SPF)
Compression mode                         : Lossy
Stream size                              : 62.4 MiB (33%)
Default                                  : Yes
Alternate group                          : 1




C:\Users\User\Downloads\ac>dir ac.mp4
 Volume in drive C has no label.
 Volume Serial Number is 4645-5DCE

 Directory of C:\Users\User\Downloads\ac

11/03/2021  15:14       195,166,205 ac.mp4
               1 File(s)    195,166,205 bytes
               0 Dir(s)   2,360,127,488 bytes free

C:\Users\User\Downloads\ac>dir ac2.mp4
 Volume in drive C has no label.
 Volume Serial Number is 4645-5DCE

 Directory of C:\Users\User\Downloads\ac

11/03/2021  15:28       195,837,608 ac2.mp4
               1 File(s)    195,837,608 bytes
               0 Dir(s)   2,360,127,488 bytes free

C:\Users\User\Downloads\ac>
Другие вопросы по тегам