V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
movq
V2EX  ›  FFmpeg

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

  •  
  •   movq · 2022-02-19 22:41:45 +08:00 · 2230 次点击
    这是一个创建于 1004 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我的需求是,合并两个视频(一个视频 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
    
    

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

    10 条回复    2023-03-20 19:57:03 +08:00
    geekvcn
        1
    geekvcn  
       2022-02-19 23:22:46 +08:00
    可以合并,但是我建议你先搞懂所有参数,你处理速度慢不是因为指令分开了,而是重复编码了
    watermeter
        2
    watermeter  
       2022-02-19 23:28:30 +08:00
    你提高音量为啥还要再编码一次视频啊
    crab
        3
    crab  
       2022-02-19 23:33:57 +08:00   ❤️ 1
    filter_complex 里加[0]volume=应该可以吧
    movq
        4
    movq  
    OP
       2022-02-19 23:37:08 +08:00
    @geekvcn 大佬能指点一下吗,因为我只是临时使用 ffmpeg ,不想去看复杂的文档
    @watermeter 我这个问题就是在问可不可以不再编码一次,因为我不熟悉 ffmpeg 语法
    movq
        5
    movq  
    OP
       2022-02-19 23:45:32 +08:00
    @crab 晚上试试,明早起来看下
    movq
        6
    movq  
    OP
       2022-02-20 10:55:43 +08:00
    @crab 可以把音量提升放到前面的那个 filterchain 里面,试了可行
    phpfpm
        7
    phpfpm  
       2022-02-20 11:04:48 +08:00
    @movq rtfm
    jackmod
        8
    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
        9
    littleNorth  
       2023-03-20 17:17:40 +08:00
    @jackmod 你好 可以请教下 ffmpeg 合并视频吗?我把两个视频从 mp4 转成 ts 格式再按时间前后合并成一个 mp4 ,从 mp4 转成 ts 中,我会把两个视频都改成 1280*720 的分辨率,单独看两个视频也都正常,但是合并后后面的一个视频显示大小会被限制在前一个视频的画面大小里面,请问这是啥原因?两个视频是一个竖屏的视频,一个横屏的视频
    jackmod
        10
    jackmod  
       2023-03-20 19:57:03 +08:00
    @littleNorth 画布大小来源于第一个视频。可以先使用 lavfi 的 testsrc 输入作为画布,再在上面辅设要处理的视频。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5280 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 09:19 · PVG 17:19 · LAX 01:19 · JFK 04:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.