Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Audio 单线FFMPEG cmd,用于合并视频/音频并保留两种音频_Audio_Video_Ffmpeg - Fatal编程技术网

Audio 单线FFMPEG cmd,用于合并视频/音频并保留两种音频

Audio 单线FFMPEG cmd,用于合并视频/音频并保留两种音频,audio,video,ffmpeg,Audio,Video,Ffmpeg,我有一个项目,需要合并一个视频文件与另一个音频文件。预期输出是一个视频文件,该文件将包含来自实际视频的音频和合并的音频文件。输出视频文件的长度将与实际视频文件的大小相同 是否有一行FFMPEG命令可以使用复制和映射参数来实现这一点 我将使用的视频格式是flv或mp4 而且音频文件格式将是mp3,也可以不使用map实现 ffmpeg-i video.mp4-i audio.mp3 output.mp4 如果您希望output.mp4在其中一个输入停止时立即停止(音频/视频) 然后使用 -最短的 例

我有一个项目,需要合并一个视频文件与另一个音频文件。预期输出是一个视频文件,该文件将包含来自实际视频的音频和合并的音频文件。输出视频文件的长度将与实际视频文件的大小相同

是否有一行FFMPEG命令可以使用复制和映射参数来实现这一点

我将使用的视频格式是flv或mp4
而且音频文件格式将是mp3

,也可以不使用map实现

ffmpeg-i video.mp4-i audio.mp3 output.mp4

如果您希望output.mp4在其中一个输入停止时立即停止(音频/视频) 然后使用

-最短的

例如:
ffmpeg-i video.mp4-i audio.mp3-shortest output.mp4

这将确保输出在任何一个输入完成时停止

因为你已经要求你要用地图来做这件事。这就是你如何做到的:

ffmpeg-i video.mp4-i audio.mp3-map 0:0-map 1:0-shortest output.mp4

现在,由于您想保留视频文件的音频,请考虑合并<代码>音频.mp3和<代码>视频.MP4<代码>。以下是步骤:

  • 从视频中提取音频。mp4
  • ffmpeg-i video.mp4 1.mp3

  • 合并audio.mp3和1.mp3
  • ffmpeg-i audio.mp3-i 1.mp3-filter\u complex amerge-c:a libmp3lame-q:a 4 audiofinal.mp3

  • 从video.mp4中删除音频(此步骤不是必需的,只是为了正确执行)
  • ffmpeg-i video.mp4-a videofinal.mp4

  • 现在合并audiofinal.mp3和videofinal.mp4
  • ffmpeg-i videofinal.mp4-i audiofinal.mp3-shortest final.mp4

    注意:在最新版本的ffmpeg中,它只会提示您使用'-strict-2',如果它确实使用此选项:

    ffmpeg-i videofinal.mp4-i audiofinal.mp3-shortest-strict-2 final.mp4

    希望这能有所帮助。

    这很容易:

    使用一个cmd无法完成此操作。
    1。从视频文件获取音频,音频文件名为a.mp3

    ffmpeg.exe -i audio.mp3 -i a.mp3 -filter_complex amerge -c:a libmp3lame -q:a 4 audiofinal.mp3
    
    ffmpeg -i audio.mp3 -i 1.mp3 -filter_complex amerge -c:a libmp3lame -q:a 4 audiofinal.mp3
    
    2。合并两个音频文件(audio.mp3+a.mp3=audiofinal.mp3)

    3。合并视频文件和音频文件(video.mp4+audiofinal.mp3=output.mp4)


    如果无法使用以下命令合并视频和音频,请首先从视频中删除声音: ffmpeg-i video.mp4-videofinal.mp4的一个用例:

    • 将音乐添加到背景中
    • 您渲染了一个视频,但禁用了其中的某些部分,因此您不想再次渲染它(因为它太长),而是只渲染音频曲目(快速),并希望将其与原始视频合并
    假设

    • 你有你的视频和你的演讲(或只是音轨,无论什么)
    • 您的音乐文件不太响亮。否则,您将听不到自己的声音:

    步骤:

    1) 从视频中提取音频

    ffmpeg -i test.mp4 1.mp3
    
    ffmpeg -i audiofinal.mp3 -i example-nosound.wmv -c:v copy -vcodec copy final.wmv
    
    test.mp4-您的文件

    2) 合并audio.mp3和1.mp3

    ffmpeg.exe -i audio.mp3 -i a.mp3 -filter_complex amerge -c:a libmp3lame -q:a 4 audiofinal.mp3
    
    ffmpeg -i audio.mp3 -i 1.mp3 -filter_complex amerge -c:a libmp3lame -q:a 4 audiofinal.mp3
    
    audiofinal.mp3-带音乐的音频

    3) 从原始音频中删除音频

    ffmpeg -i example.mkv -c copy -an example-nosound.mkv
    
    示例-nosound.mkv-您的视频没有音频

    4) 与适当的音频合并

    ffmpeg -i test.mp4 1.mp3
    
    ffmpeg -i audiofinal.mp3 -i example-nosound.wmv -c:v copy -vcodec copy final.wmv
    

    final.wmv-您的完美视频。

    我认为没有必要从视频中提取音频。我们可以使用
    -filter\u complex amix
    合并两种音频:

    ffmpeg-i videowithaudio.mp4-i audiotooverlay.mp3-filter\u complex amix-map 0:v-map 0:a-map 1:a-shortest videowithbothaudios.mp4

    -filter\u complex amix
    将第一个输入文件中的音频覆盖在第二个输入文件中的音频之上

    -映射第一个输入文件的0:v
    视频流

    -map 0:第一个输入文件的音频流

    -map 1:第二个输入文件的音频流


    -shortest
    输出的长度是最短输入的长度

    是的,只需将输出格式更改为。flv和u很好。我尝试了您的第二个示例,但输出视频没有从mp3文件中拾取音频。输出mp4与输入mp4文件完全相同。如果我的FFMPEG安装有问题,如果您非常确定这个CMD,那么我可以在其他服务器上尝试。请确认。再次感谢。是的,非常确定。我又试了一次。我使用的是ffmpeg 2.2.4版(2000-2014)。如果您在安装过程中遇到问题,请查看我的答案通过预编译的二进制文件安装是最好的安装方式。这太疯狂了,我在与您的FFMPEG版本相同的其他服务器(linux)上尝试了同样的方法。但这一次,输出视频从mp3文件中拾取了声音,并丢失了视频文件中的原始声音。我希望输出同时保持视频和音频。奇怪为什么FFMPEG在不同的安装中表现如此不同。哦,甚至我都不知道为什么会发生这种情况。可能你还没有安装所有的编解码器。这可能是一种可能性。我想合并视频和音频,我使用此命令进行合并,但我有一个问题,当我合并什么应用程序视频和mp3文件,然后它就完成了,但当我录制视频,然后这个视频合并到mp3文件,然后它提供了成功的结果,但它没有合并。这背后的问题是什么?这不是一个解决方案,将重新编码视频。好的,我无法将我的音频/视频与上述给定命令合并。当我第一次运行命令从视频中删除音频,然后使用merge命令时。它解决了我的问题。也许这对其他人有帮助。