Answers:
我通常使用VirtualDub合并我的文件,但它似乎不支持mp4。那有什么选择呢?
Avidemux。就像VirtualDub一样,只支持更多格式以及内置编解码器和过滤器。我总是优先使用它。它加入AVC + AAC.MP4文件(无需重新编码)对我来说很好。
要将他们加入AviDemux:
根据AViDemux论坛,此加入过程是无损的(http://www.avidemux.org/smf/index.php?topic=9467.0)
您可以使用ffmpeg做到这一点:
mkfifo temp0 temp1
ffmpeg -i input0.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts -y temp0 2> /dev/null & \
ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts -y temp1 2> /dev/null & \
ffmpeg -f mpegts -i "concat:temp0|temp1" -c copy -absf aac_adtstoasc output.mp4
这不会重新编码任何内容,而是将它们放置在新的传输流容器中,这使它们更易于串联,然后将它们串联回到MP4中。如果output.mp4已经存在,则该命令将失败。上面的版本使用命名管道,如果您使用的系统不支持命名管道,则必须使用中间文件(例如Windows):
ffmpeg -i input0.mp4 -c copy -bsf:v h264_mp4toannexb temp0.ts
ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb temp1.ts
ffmpeg -i "concat:temp0.ts|temp1.ts" -c copy -bsf:a aac_adtstoasc output.mp4
avconv
代替它解释如何完成ffmpeg
吗?我能够完成前两个步骤,但最后一个步骤却无法识别-absf
avconv
,ffmpeg
它将起作用。
concat多路分解器已添加到ffmpeg 1.1。如果您的ffmpeg版本过旧,请从此处获取最新的静态二进制文件: http : //www.ffmpeg.org/download.html
mylist.txt
使用以下形式创建一个要包含所有文件的文件(以短划线开头的行将被忽略):
# this is a comment
file '/path/to/file1'
file '/path/to/file2'
file '/path/to/file3'
请注意,这些路径可以是相对路径,也可以是绝对路径。然后,您可以使用以下代码对文件进行编码:
ffmpeg -f concat -i mylist.txt -c copy output
可以使用bash for loop或使用printf生成此列表文件。以下任何一种都会生成一个包含工作目录中每个* .wav的列表文件:
for f in ./*.wav; do echo "file '$f'" >> mylist.txt; done
printf "file '%s'\n" ./*.wav > mylist.txt
来源:ffmpeg Wiki
YAMB和MP4BOX是一个不错的选择。
两者都下载并解压缩(无需安装,总共约5MB),在YAMB中选择“设置”并设置MP4box的文件夹路径。
要加入mp4文件,请选择“编辑”>“单击加入受支持的...”。
尝试使用Matroska视频容器。
首先,您需要mkvtoolnix。下载并安装它,那么你需要火起来了mkvmerge GUI(除非你喜欢命令行工具,这是罚款,由我-尽管你可能想看看在链接部分的文件中的文件了mkvmerge)。
通过单击“添加”添加您的第一个文件。然后,单击“追加”,然后打开第二个文件。设置输出文件,点击底部的“开始混合”,然后离开!
如果该容器不适合您的需求,则可以对其重新编码,或尝试将其转换为其他格式...尽管MKV是一个非常可爱的容器!
如果您可以在系统上播放它们,或者已安装编解码器,则Windows Movie Maker可能是最快(免费)的方式来连接两个文件。然后,您可以使用Virtualdub转换为其他格式。
另一个解决方案是 Open Video Joiner。它还具有过渡效果。