ffmpeg使用filter_complex和hls的配置困难

问题描述 投票:0回答:1

[我正在尝试设置ffmpeg,以便它将通过麦克风录制并将结果同时编码为.flac文件,以便以后与我将要制作的某些视频同步。

麦克风已插入树莓派(4B),目前我正在尝试使用蓝色雪人麦克风,但我想我可以使用插入的focusrite Scarlett 2i2来做同样的事情。但是,我很困惑如何开始服务器记录,并决定如果我制作了一个简单的nodejs服务器并将ffmpeg作为子进程生成,则可以从Web浏览器中进行录制。

但是后来我受到这个示例ffmpeg命令的启发,该命令显示(在具有图形界面的桌面上)音量表

ffmpeg -hide_banner -i 'http://distribution.bbb3d.renderfarming.net/video/mp4/bbb_sunflower_1080p_30fps_normal.mp4' -filter_complex "showvolume=rate=25:f=0.95:o=v:m=p:dm=3:h=80:w=480:ds=log:s=2" -c:v libx264 -c:a aac -f mpegts - | ffplay -window_title "Peak Volume" -i -

如果我可以将showvolume过滤器产生的视频流式传输到用于控制ffmpeg进程的Web浏览器(请注意,我不想与此发送音频)。因此,我尝试在hls上进行阅读(因为控制设备将是ipad-实际上,这就是我要录制视频的内容),并提出了以下命令]

ffmpeg -hide_banner -f alsa -ac 2 -ar 48k -i hw:CARD=Microphone -filter_complex "asplit=2[main][vol],[vol]showvolume=rate=25:f=0.95:o=v:m=p:dm=3:h=80:w=480:ds=log:s=2[vid]" -map [main] -c:a:0 flac recordings/session_$(date +%a_%d_%b_%Y___%H_%M_%S).flac -map [vid] -preset veryfast -g 25 -an -sc_threshold 0 -c:v:1 libx264 -b:v:1 2000k -maxrate:v:1 2200k -bufsize:v:3000k -f hls -hls_time 4 -hls_flags independent_segments delete_segments -strftime 1 -hls_segment_filename recordings/volume-%Y%m%d-%s.ts recordings/volume.m3u8

问题是我发现文档一旦生成了两个流(主音频和视频流,并且此命令同时引发警告和错误:-],会发生什么情况就变得不透明了->

警告为Guessed Channel Layout for Input Stream #0.0 : stereo

错误是

[NULL @ 0x1baa130] Unable to find a suitable output format for 'hls'
hls: Invalid argument

[我想做的是设置流标签[main]和[vol],将传入的音频分为两部分,然后将[vol]通过“ showvolume”过滤器,最后得到流[vid] 。

[我认为我需要使用-map指定将[main]流编码为flac并将其写到文件中(该文件在我运行命令后就存在,尽管它们的长度为零),并使用另一个-map传递到-f hls部分。但是我认为我在这个阶段有问题。

有人可以帮助我正确执行此命令。

我正在尝试设置ffmpeg,以便它将通过麦克风进行录制并将结果同时编码为.flac文件,以便以后与我将要制作的某些视频进行同步。麦克风...

ffmpeg
1个回答
0
投票

-bufsize:v:3000k可能是拼写错误,请尝试-bufsize:v:1 3000k

© www.soinside.com 2019 - 2024. All rights reserved.