有些网站下载视频时,音频、视频是分开的两个独立文件,需要把它们合并为一个包含音频轨道的视频文件,才能正常播放。使用ffmpeg命令可以轻松合并音视频。
这里用的是ffmpeg工具,需要提前安装好。
单个合并
打开命令窗口,切换到音频、视频文件所在的目录,然后直接运行以下命令即可完成合并。
ffmpeg -i video.m4s -i audio.m4s -c:v copy -c:a copy output.mp4
上述命令解释如下:
-i video.m4s:指定输入的视频文件。
-i audio.m4s:指定输入的音频文件。
-c:v copy:表示视频编解码器直接复制,不进行重新编码,以节省时间和保持画质。
-c:a copy:音频编解码器同样直接复制,不重新编码。
output.mp4:指定合并后输出的视频文件名,这里格式为 MP4,可根据需求指定为其他支持的格式。
批量合并
要将当前文件夹下的所有音频、视频批量合并为视频文件,可以建立bat脚本,双击运行。以下是完整代码:
@echo off
setlocal enabledelayedexpansion
rem 遍历当前文件夹下所有的 m4s 文件
for %%a in (*.m4s) do (
set "prefix=%%~na"
set "prefix=!prefix:~0,2!"
set "video_found=false"
set "audio_found=false"
set "video_file="
set "audio_file="
rem 再次遍历文件夹,查找匹配前缀的音视频文件
for %%b in (*.m4s) do (
set "current_prefix=%%~nb"
set "current_prefix=!current_prefix:~0,2!"
if "!current_prefix!"=="!prefix!" (
rem 尝试通过文件大小来区分音频和视频,通常视频文件更大
for %%c in ("%%b") do set "file_size=%%~zc"
if "!video_found!"=="false" (
set "video_file=%%b"
set "video_found=true"
set "video_size=!file_size!"
) else (
if !file_size! GTR !video_size! (
set "audio_file=!video_file!"
set "video_file=%%b"
set "video_size=!file_size!"
) else (
set "audio_file=%%b"
)
set "audio_found=true"
)
)
)
rem 如果找到了一组音视频文件,则进行合并
if "!video_found!"=="true" and "!audio_found!"=="true" (
rem 获取视频文件的全名(去除扩展名)
set "output_name=!video_file:~0,-4!.mp4"
rem 使用 -y 参数自动覆盖已存在的文件
ffmpeg -y -i "!video_file!" -i "!audio_file!" -c:v copy -c:a copy "!output_name!"
echo 已合并 !video_file! 和 !audio_file! 为 !output_name!
)
)
endlocal
本文地址:https://cas01.com/7815.html
公 众 号 :注意两个号的区别,小斯想
(OneNote为主);cas01
(知识管理理论及实践)。
温馨提示:本站发布的压缩包如需密码解压,若无特别说明,密码统一为:cas01.com
版权声明:本文为原创文章,版权归 小斯 所有,转载请保留出处。
公 众 号 :注意两个号的区别,小斯想
(OneNote为主);cas01
(知识管理理论及实践)。温馨提示:本站发布的压缩包如需密码解压,若无特别说明,密码统一为:cas01.com
版权声明:本文为原创文章,版权归 小斯 所有,转载请保留出处。
