微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

FFMpeg 将特定时间的视频和音频合并到另一个视频中 更多信息

如何解决FFMpeg 将特定时间的视频和音频合并到另一个视频中 更多信息

我有一个标准的 mp4(音频 + 视频) 我正在尝试将 1.4 秒的迷你 mp4 剪辑合并到该曲目中,替换迷你剪辑长度的视频,但在特定时间将音频合并在一起

有谁知道如何使用 ffmpeg 做到这一点?

我尝试了很多不同的过滤器,但似乎无法得到我想要的


                          V <------->
miniclip.mp4              A <=======>
             V <----------->  ↓ + ↓  <--->
standard.mp4 A <=========================>

解决方法

编辑(现在我明白了这个问题):

First Get 1.4 seconds of standard.mp4 and audio1.mp3

-ss 是获取长度为 1.4 秒的小视频的开始(使用 -t 选项可以指定持续时间,在本例中为 1.4 秒)摘要:从 5 分钟开始剪切视频,1.4 秒 -an 为audio none copy,因为要添加一个新的audio1.mp3

video_only.mp4

ffmpeg -ss 00:05:00 -i standard.mp4 -t 1.4 -map 0:v -c copy -an small_only_video.mp4

audio_only.mp4

ffmpeg -ss 00:05:00 -i audio1.mp3 -t 1.4 -c copy small_only_audio.mp3

现在您可以创建 small_clip_audiovideo.mp4

ffmpeg -i small_only_video.mp4 -c:a mp3 -i small_only_audio.mp3     -c copy -map 0:v -map 1:a:0   -disposition:a:0 default  -disposition:a:1 default  -strict -2 -sn -dn -map_metadata -1 -map_chapters -1  -movflags faststart small_clip_audiovideo.mp4
,

在时间戳 5 处显示 miniclip.mp4(1.4 秒长)的示例。

ffmpeg -i main.mp4 -i miniclip.mp4 -filter_complex "[0:v]drawbox=t=fill:enable='between(t,5,6.4)'[bg];[1:v]setpts=PTS+5/TB[fg];[bg][fg]overlay=x=(W-w)/2:y=(H-h)/2:eof_action=pass;[1:a]adelay=5s:all=1[a1];[0:a][a1]amix" output.mp4
  • drawbox 用黑色覆盖主视频。仅当 miniclip.mp4 的宽度或高度小于 main.mp4 时才需要。如果 miniclip.mp4 宽度和高度大于 main.mp4,您可以省略它。或者,您可以使用 scale2ref 过滤器使 miniclip.mp4 具有与 main.mp4 相同的宽度和高度。

  • setptsminiclip.mp4 视频添加 5 秒偏移。

  • overlayminiclip.mp4 个视频覆盖在 main.mp4 个视频上。

  • adelayminiclip.mp4 音频添加 5 秒延迟。

  • amix 混合 miniclip.mp4main.mp4 音频。

更多信息

,
                          V <------->
miniclip.mp4              A <=======>
             V <----------->  ↓ + ↓  <------->
standard.mp4 A <=============================>

               |--|--|--|--|--|--|--|--|--|--|
               0  1  2  3  4  5  6  7  8  9 10  

           standard.mp4 have 10 seconds (aprox) of duration,have audio and video

           miniclip.mp4 have 03 seconds (aprox) of duration,have video and audio

ffmpeg -i standard.mp4 |
                        } have same codes of video and audio?*
ffmpeg -i miniclip.mp4 |
  • 如果文件standard.mp4 和miniclip.mp4 的音频或视频代码不相同,如果你想要一个好的工作,你将重新编码以继续。

ffmpeg -ss 00:00:00 -i standard.mp4 -t 4 -c copy 01.part_project.mp4

  • 和 7 到 10,在 03.part_project.mp4

    ffmpeg -ss 00:00:04.000 -i standard.mp4 -t 3.0000 -c copy 03.part_project.mp4

  • 将 miniclip.mp4 的名称更改或创建副本为 02.part_project.mp4

    cp miniclip.mp4 02.part_project.mp4

(如果您选择选项 2 仅复制音频,santadard_part2_audio.mp4,将使用标准.mp4 的 4 秒到 7 秒部分)

现在选项 N 1:是联系(联合)三个视频部分

创建一个文件夹“option1”并复制 01.part_project.mp4 02.part_project.mp4 03.part_project.mp4

mkdir option1 && cp 01.part_project.mp4 02.part_project.mp4 03.part_project.mp4 ./option1 && cd ./option1

现在您将 01.part_project.mp4 + 02.part_project.mp4 + 03.part_project.mp4 连接到一个唯一的文件 fin_option1.mp4

ffmpeg -f concat -safe 0 -i <(for f in ./*.mp4; do echo "file '$PWD/$f'"; done) -c copy fin_option1.mp4



                          V <------->
miniclip.mp4              A <=======>
             V <----------->  ↓ + ↓  <------->
standard.mp4 A <============XXXXXXXXX========>

               |--|--|--|--|--|--|--|--|--|--|
               0  1  2  3  4  5  6  7  8  9 10  

  • 第二个选项是联系(联合)三个视频部分,但混合 带有 santadard_part2_audio.mp4 的 miniclip.mp4 音频

    从 santadard_part2_audio.mp4 获取音频流并获取音频 仅来自 miniclip.mp4 的文件

    ffmpeg -i santadard_part2_audio.mp4 -map 0:a -c copy -vn -strict -2 mix_audio_santadad.mp4


ffmpeg -i miniclip.mp4 -map 0:a -c copy -vn -strict -2 mix_audio_miniclip.mp4

将所有音频**合二为一,然后将 miniclip.mp4 中的视频放入


ffmpeg -i mix_audio_miniclip.mp4 -i mix_audio_santadad.mp4 -filter_complex amix=inputs=2:duration=longest -strict -2  audio_mixed_miniclip.mp4

仅从 miniclip.mp4 获取视频


ffmpeg -i miniclip.mp4 -c copy -an miniclip_video.mp4

获得 miniclip 但带有混合音频,我认为这是您正在寻找的解决方案


ffmpeg -i miniclip_video.mp4  -i audio_mixed_miniclip.mp4   -c copy -map 0:v -map 1:a:0  -disposition:a:0 default  -disposition:a:1 default  -strict -2 -sn -dn -map_metadata -1 -map_chapters -1  -movflags faststart 02.part_project_OPTION2.mp4 




                     santadard_part2_audio.mp4  
                           + 
                        audio_miniclip.mp4

                          V <------->
miniclip.mp4              A <MMMMMMMM> (audio miniclip mixed with standard.mp4)
             V <----------->  ↓ + ↓  <------->
standard.mp4 A <============         ========>

               |--|--|--|--|--|--|--|--|--|--|
               0  1  2  3  4  5  6  7  8  9 10 

创建一个文件夹“option2”并复制 01.part_project.mp4 02.part_project_OPTION2.mp4 03.part_project.mp4

mkdir option2 && cp 01.part_project.mp4 02.part_project_OPTION2.mp4 03.part_project.mp4 ./option2 && cd ./option2

ffmpeg -f concat -safe 0 -i

注意事项 ** 你可以使用很多音频操作https://trac.ffmpeg.org/wiki/AudioChannelManipulation

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。