android - 用于从两个不同的视频和两个不同的音频创建最终视频的 ffmpeg 命令

标签 android ffmpeg android-ffmpeg

我有两个视频和两个音频
1:-
视频 1 - 长度:- 60 秒 ||音频 1 - 长度:- 15 秒
2:-
视频 - 长度:- 86 秒 ||音频 2 - 长度:- 18 秒
一起播放 video1 和 audio1,如果 audio1 结束,则重新启动该音频直到 video1 结束。这将最终视频 1 .
同样的方法,
一起播放 video2 和 audio2,如果 audio2 结束,则重新启动该音频直到 video2 结束。这将最终视频 2 .
之后连接 那些最终视频 1 和最终视频 2 并创建单个视频作为输出。
先感谢您。

最佳答案

  • 因为您的输入是任意的,所以您需要在连接之前使它们相同。
    ffmpeg -i video1 -stream_loop -1 -i audio1 -filter_complex "[0:v]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:-1:-1,setsar=1,fps=25,format=yuv420p[v]" -map "[v]" -map 1:a -ac 2 -ar 44100 -shortest temp1.mp4
    ffmpeg -i video2 -stream_loop -1 -i audio2 -filter_complex "[0:v]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:-1:-1,setsar=1,fps=25,format=yuv420p[v]" -map "[v]" -map 1:a -ac 2 -ar 44100 -shortest temp2.mp4
    
  • 连接。
    制作 input.txt :
    file 'temp1.mp4'
    file 'temp2.mp4'
    
    运行ffmpeg :
    ffmpeg -f concat -i input.txt -c copy -movflags +faststart output.mp4
    

  • 作为请求的“单行命令”(但首先创建 input.txt):
    ffmpeg -i video1 -stream_loop -1 -i audio1 -filter_complex "[0:v]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:-1:-1,setsar=1,fps=25,format=yuv420p[v]" -map "[v]" -map 1:a -ac 2 -ar 44100 -shortest temp1.mp4 && ffmpeg -i video2 -stream_loop -1 -i audio2 -filter_complex "[0:v]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:-1:-1,setsar=1,fps=25,format=yuv420p[v]" -map "[v]" -map 1:a -ac 2 -ar 44100 -shortest temp2.mp4 && ffmpeg -f concat -safe 0 -i input.txt -c copy -movflags +faststart output.mp4
    

    关于android - 用于从两个不同的视频和两个不同的音频创建最终视频的 ffmpeg 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65262067/

    相关文章:

    Android SDK 安装错误

    javascript - Cordova jsPDF - 生成 PDF,我在手机中找不到 pdf 文件

    Android:短信数据库更新接收器?

    c++ - 如果设置了 processthreadsapi::STARTUPINFO::hStdError,则 fileapi::WriteFile() 不发送输入 (ffmpeg)

    c++ - ffmpeg 调试

    android - ffmpeg android图像和音频合并不起作用

    Android 两指旋转

    Laravel FFmpeg 错误调用未定义的方法 FFMpeg\FFMpeg::fromDisk()

    ffmpeg - 如何使用 Xamarin.MP4Transcoder.Transcoder 将视频转码为自定义分辨率

    video - 使用 FFMPEG 将 GIF 和音频文件合并为一个视频文件的最简单方法是什么