我在.net应用程序中使用ffmpeg合并(连接)一些具有相同编码以及宽度和高度尺寸的短视频。我已经按照文档中的说明创建了一个txt文件,这是我的txt:
concatTextDirectory是我的txt文件的目录。
file 'C:\Users\mtst\Desktop\Clips\keep\a1.mp4'
file 'C:\Users\mtst\Desktop\Clips\keep\a2.mp4'
file 'C:\Users\mtst\Desktop\Clips\keep\a3.mp4'
file 'C:\Users\mtst\Desktop\Clips\keep\a4.mp4'
file 'C:\Users\mtst\Desktop\Clips\keep\a5.mp4'
这是ffmpeg参数部分:
ffmpeg.StartInfo.Arguments = "/c ffmpeg.exe -f concat -i " + concatTextDirectory + " -c copy " + videoOut + " -y -report";
但没有结果,下面是报告
ffmpeg于2016-04-25 19:02:30启动,报告已写入
“ ffmpeg-20160425-190230.log”命令行:ffmpeg.exe -f concat -i
“ C:\ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt” -c复制
“ C:\ Users \ mtst \ Desktop \ Clips \ keep \ keep.mp4” -y-报告ffmpeg
版本N-79546-g13406b6版权所有(c)2000-2016 FFmpeg
22.100 libavcodec 57. 35.100 / 57. 35.100 libavformat 57. 34.102 / 57. 34.102 libavdevice 57. 0.101 / 57. 0.101 libavfilter 6. 44.100 / 6. 44.100 libswscale 4. 1.100 / 4.100 libswresample 2. 0.101 / 2. 0.101 libpostproc 54. 0.100 / 54. 0.100拆分命令行。读取选项'-f'...作为选项匹配
参数为“ concat”的“ f”(强制格式)。读取选项'-i'...
作为输入文件与参数
'C:\ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt'匹配。读取选项'-c'...
与参数'copy'匹配为选项'c'(编解码器名称)。读取
选项'C:\ Users \ mtst \ Desktop \ Clips \ keep \ keep.mp4'...已匹配为
输出文件。读取选项'-y'...与参数'1'匹配为选项'y'(覆盖输出文件)。读取选项'-report'...与参数'1'匹配为选项'report'(生成报告)。完成
拆分命令行。解析一组选项:global。
对参数1应用选项y(覆盖输出文件)。
解析了一组选项。解析一组选项:输入文件
C:\ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt。将选项f(强制
格式)与参数concat一起应用。成功解析了一组选项。打开输入文件:C:\ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt。
[file @ 00000000027d3ee0]设置默认白名单'file,crypto'
[concat @ 00000000027d3800]不安全的文件名
'C:\ Users \ mtst \ Desktop \ Clips \ keep \ a1.mp4'[AVIOContext @
0000000000957ca0]统计信息:读取238个字节, 0搜索
C:\ Users \ mtst \ Desktop \ Clips \ keep \ keep.txt:不允许操作
正如您在最后看到的那样:
不安全的文件名'C:\ Users \ mtst \ Desktop \ Clips \ keep \ a1.mp4'
...和不允许的操作。我尝试添加额外的反斜杠或将反斜杠更改为正斜杠或转义双冒号,在concatTextDirectory的开头或结尾处添加双引号或单引号...这些更改均未产生任何结果。