ffmpeg 如何在合并视频的同时顺便调大音量

2022-02-19 22:41:45 +08:00
movq  movq

我的需求是,合并两个视频(一个视频 A 放在左边,一个视频 B 放在右边),音频选择复制第一个视频的音频

                ffmpeg \
                -i  A.mp4 \
                -i B.mp4 \
                -filter_complex "[0:v]pad=iw*2:ih[v_wide];[v_wide][1:v]overlay=W/2:0[out_video]" \
                -map "[out_video]" \
                -c:v libx265 \
                -crf 28 \
                -map 0:a:0 \
                -c:a copy -y \
                ./C.mp4

但是直接这么做,音量太小了,所以我又进行了一道步骤:把生成的视频 C ,进行音量提升的操作

        ffmpeg -i C.mp4 -af volume=20dB -c:v libx265 C_high_volume.mp4

问题是,有没有办法把这两步合成为一步呢?(我觉得这样可以降低处理时间)

2316 次点击
所在节点   FFmpeg  FFmpeg
10 条回复
geekvcn
geekvcn
2022-02-19 23:22:46 +08:00
可以合并,但是我建议你先搞懂所有参数,你处理速度慢不是因为指令分开了,而是重复编码了
watermeter
watermeter
2022-02-19 23:28:30 +08:00
你提高音量为啥还要再编码一次视频啊
crab
crab
2022-02-19 23:33:57 +08:00
filter_complex 里加[0]volume=应该可以吧
movq
movq
2022-02-19 23:37:08 +08:00
@geekvcn 大佬能指点一下吗,因为我只是临时使用 ffmpeg ,不想去看复杂的文档
@watermeter 我这个问题就是在问可不可以不再编码一次,因为我不熟悉 ffmpeg 语法
movq
movq
2022-02-19 23:45:32 +08:00
@crab 晚上试试,明早起来看下
movq
movq
2022-02-20 10:55:43 +08:00
@crab 可以把音量提升放到前面的那个 filterchain 里面,试了可行
phpfpm
phpfpm
2022-02-20 11:04:48 +08:00
@movq rtfm
jackmod
jackmod
2022-02-20 17:31:10 +08:00
[0:v]pad=iw*2:ih[v_wide];
[v_wide][1:v]overlay=W/2:0[out_video];
[0:a]volume=6dB[ao]

-map [out_video]:v -c:v ...
-map [ao]:a -c:a aac ...

既然用了 filter_complex ,大多数情况下就没必要用-af -vf 了,所有效果写在一起更容易整理
littleNorth
littleNorth
2023-03-20 17:17:40 +08:00
@jackmod 你好 可以请教下 ffmpeg 合并视频吗?我把两个视频从 mp4 转成 ts 格式再按时间前后合并成一个 mp4 ,从 mp4 转成 ts 中,我会把两个视频都改成 1280*720 的分辨率,单独看两个视频也都正常,但是合并后后面的一个视频显示大小会被限制在前一个视频的画面大小里面,请问这是啥原因?两个视频是一个竖屏的视频,一个横屏的视频
jackmod
jackmod
2023-03-20 19:57:03 +08:00
@littleNorth 画布大小来源于第一个视频。可以先使用 lavfi 的 testsrc 输入作为画布,再在上面辅设要处理的视频。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/835111

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX