使用VLC CLI增加文件的卷

时间:2014-07-23 13:10:38

标签: audio vlc

我的目标是拥有一个带有音频文件的脚本,并将其音量提高50%。

我目前使用以下AutoHotKey代码段将文件编码为MP3:

run_string := "bash -c ""\""c:\Program Files\VideoLAN\VLC\vlc.exe\"" -I dummy \""" . file_path . "\"" --sout='#transcode{acodec=mp3,vcodec=dummy}:standard{access=file,mux=raw,dst=\""" . file_path . ".mp3\""}' vlc://quit"""

如何修改此行不仅可以编码为mp3,还可以将文件的音量提高50%?我尝试设置--volume 150,但它只是让文件播放,而我不想播放,我希望将其保存在该卷中。

如果您有其他Windows兼容工具的建议来修改可以执行此操作的音频,(以及如何执行此操作的说明),我将很高兴听到它们。

5 个答案:

答案 0 :(得分:5)

我建议您使用 ffmpeg 。它非常强大,跨平台32或64位,音频和视频转换器。可以从Zeranoe FFmpeg - Builds

下载

下面的示例命令适用于从视频或音频转换器中提取音频,其音量增加或减少支持。

将视频中的音频提取为MP3,或将音频转换为MP3(示例 InputFilePath_VideoOrAudio =“e:\ video.mp4”或“e:\ audio.m4a”)

e:\ffmpeg\ffmpeg.exe -y -i "InputFilePath_VideoOrAudio" -acodec libmp3lame -ab 192k -ar 48000 -sn -dn -vn "E:\out.mp3"

从视频中提取音频到MP3,并在提取添加 -af“volume = 1.5”参数时增加音量150%。

e:\ffmpeg\ffmpeg.exe -y -i "InputFilePath_VideoOrAudio" -acodec libmp3lame -ab 192k -ar 48000 -sn -dn -vn -af "volume=1.5" "E:\out.mp3"

音频转换器参数列表(mp3,ogg,ac3,wma,flac,wav,aiff,m4a ....)。要在转换为音频时更改音量,请添加 -af“volume = VolumeValue”参数。

VolumeValue = 0.5 减少量%50

VolumeValue = 1.5 增加量%150

VolumeValue = 2.0 增加音量%200,依此类推。

e:\ffmpeg\ffmpeg.exe -y -i "InputFilePath_VideoOrAudio" -acodec libmp3lame -ab 192k -ar 48000 -sn -dn -vn -af "E:\out.mp3"
e:\ffmpeg\ffmpeg.exe -y -i "InputFilePath_VideoOrAudio" -acodec ac3 -ab 192k -ar 48000 -sn -dn -vn "E:\out.ac3"
e:\ffmpeg\ffmpeg.exe -y -i "InputFilePath_VideoOrAudio" -f ogg -acodec libvorbis -ab 192k -ar 48000 -sn -dn -vn "E:\out.ogg"
e:\ffmpeg\ffmpeg.exe -y -i "InputFilePath_VideoOrAudio" -acodec wmav2 -ab 192k -ar 48000 -sn -dn -vn "E:\out.wma"
e:\ffmpeg\ffmpeg.exe -y -i "InputFilePath_VideoOrAudio" -acodec flac -sn -dn -vn "E:\out.flac"
e:\ffmpeg\ffmpeg.exe -y -i "InputFilePath_VideoOrAudio" -sn -dn -vn "E:\out.wav"
e:\ffmpeg\ffmpeg.exe -y -i "InputFilePath_VideoOrAudio" -f aiff -sn -dn -vn "E:\out.aiff"
e:\ffmpeg\ffmpeg.exe -y -i "InputFilePath_VideoOrAudio" -acodec aac -ab 192k -ar 48000 -sn -dn -vn "E:\out.m4a" 

注1:某些编解码器可以是实验性的,在这种情况下,您应该使用 -strict experimental -strict -2 参数。

注2: -ab 参数表示音频比特率。某些设备无法播放比特率大于 -ab 192k 的音频文件。使用 -ab 128k -ab 192k -ar 44100 参数生成可以播放大多数移动设备的音频文件。 -ac 2 参数表示立体声 -ac 1 表示单声道。

转换输入文件的特定部分使用 -ss 00:00:00 -t 参数。 -ss 表示从 -t 开始表示持续时间。 重要提示:参数 -ss 应放在 -i 参数之前,否则 ffmpeg 会设为 -ss 慢慢定位。

示例:假设输入文件的持续时间为00:20:00(20分钟)

仅使用 -ss 00:05:00 表示将输入文件从第5分钟转换为输入文件的结尾。输出文件的持续时间为15分钟。

使用 -ss 00:05:00 -t 120 -t 00:02:00 表示转换120秒,开始从第5分钟开始。输出文件的持续时间为120秒。

e:\ffmpeg\ffmpeg.exe -y -ss 00:05:00 -i "InputFilePath_VideoOrAudio" -t 120 -acodec libmp3lame -ab 192k -ar 48000 -sn -dn -vn -af "E:\out.mp3"

注意: -y 提前 ffmpeg 的是/否问题,例如输出文件已经存在,写过?使用 -y 参数ffmpeg over写入输出文件(如果已存在而不询问用户)。

-sn 禁用字幕, -vn 禁用视频, -dn 禁用输出文件的数据流。

答案 1 :(得分:4)

如果您只想要一个CLI工具,那么可以使用ffmpeg

ffmpeg.exe -i test.mp3 -af volume=1.5 loud.mp3
                 ^            ^         ^
               input  new volume level  output name

如果您希望能够以编程方式执行此操作,请查看您的配置文件,我推断python应该不是问题:)

因此,您可以将漂亮的pydub模块与ffmpeg(或它也支持的avconv一起用于您的任务。

E.g:

from pydub import AudioSegment
AudioSegment.converter = r"C:\PATH_TO_FFMPEG_DIR\bin\ffmpeg.exe"
sound = AudioSegment.from_mp3("test.mp3") # <- the input file
new = sound.export("loud.mp3", format="mp3", parameters=["-vol", "384"]) # 384 <-> 150% volume
new.flush()
new.close()

384的原因是ffmpeg doc说明了

  

-vol音量改变音量(256 =正常)

所以256*1.5 = 384

刚刚在我的Windows 7机器上测试过这个......

希望这有帮助。

答案 2 :(得分:2)

&#34; - 卷&#34; VLC中的选项实际上并没有像你想象的那样改变输出视频的音量。你想要做的是添加压缩器过滤器,然后设置&#34; compress-makup-gain&#34;。根据您想要的视频大小,将其设置为1-24的值。所以你的命令就是这样的:

run_string := "bash -c ""\""c:\Program Files\VideoLAN\VLC\vlc.exe\"" -I dummy \""" . file_path . "\"" --sout='#transcode{acodec=mp3,vcodec=dummy,afilter=compressor}:standard{access=file,mux=raw,dst=\""" . file_path . ".mp3  --compressor-makeup-gain=20\""}' vlc://quit"""

顺便说一下,对于那些试图弄清楚如何使用VLC来增加视频文件中音频音量的人来说,这里有你如何做到这一点:

"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" yoursourcefile.mp4 :sout=#transcode{acodec=mp3,ab=128,channels=2,samplerate=44100,afilter=compressor}:file{dst=outputfilename.mp4} :sout-all :sout-keep --compressor-makeup-gain=20

替换&#34; yoursourcefile.mp4&#34;和&#34; outputfilename.mp4&#34;用你自己的文件名。根据我的经验,VLC在我运行此命令时大约有一半的时间崩溃,因此如果它崩溃,您可能需要多次尝试。

答案 3 :(得分:1)

在dir上运行此命令以逐个增加该目录上的所有文件卷(否则会占用所有CPU)

  

FOR%f IN(*)DO(开始/等待&#34;&#34;&#34; C:\ Program Files   (86)\ VideoLAN的\ VLC \ vlc.exe&#34; %F   :SOUT =#{转码= acodec MP3,afilter =压缩机}:{文件DST =升压%F}   :sout-all:sout-keep --play-and-exit --compressor-makeup-gain = 10)

答案 4 :(得分:0)

我相信mp3gain有一个命令行选项。您可以将其作为生成文件的单独传递运行:

http://mp3gain.sourceforge.net/