Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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
Linux 如何使用ffmpeg将任何视频合并到我的简介中_Linux_Shell_Video_Ffmpeg - Fatal编程技术网

Linux 如何使用ffmpeg将任何视频合并到我的简介中

Linux 如何使用ffmpeg将任何视频合并到我的简介中,linux,shell,video,ffmpeg,Linux,Shell,Video,Ffmpeg,我有一个介绍视频。我想在用户上传的视频中添加使用ffmpeg或类似程序的介绍(是的,我确实需要将它们合并到一个文件中,以便以后可以下载) 我一直在互联网上搜索,它建议把这两个视频(简介和其他视频)都转换成.mpg格式 好的,到目前为止还不错,但现在当我尝试将它们结合在一起时,我 [mpeg4@0x5547c60]检测到无效和低效的vfw avi压缩B帧 所以我猜这是因为两个视频中的某些内容不同,比如帧速率或大小。 最糟糕的是,用户可以上传几乎任何格式的视频,也可以是240p-720p质量的视频,

我有一个介绍视频。我想在用户上传的视频中添加使用ffmpeg或类似程序的介绍(是的,我确实需要将它们合并到一个文件中,以便以后可以下载) 我一直在互联网上搜索,它建议把这两个视频(简介和其他视频)都转换成.mpg格式

好的,到目前为止还不错,但现在当我尝试将它们结合在一起时,我

[mpeg4@0x5547c60]检测到无效和低效的vfw avi压缩B帧

所以我猜这是因为两个视频中的某些内容不同,比如帧速率或大小。 最糟糕的是,用户可以上传几乎任何格式的视频,也可以是240p-720p质量的视频,因此没有一个默认大小可以将简介视频转换成


如何做到这一点?

您的介绍视频应该与用户视频的分辨率相匹配,您应该拥有与用户视频相同分辨率的介绍视频。或者将所有用户视频转换为一个分辨率,以匹配intro视频的分辨率。您是否正在使用intro.mpg+user.mpg组合视频?这是否导致上述错误?

使用ffmpeg:

ffmpeg -i 'concat:input1|input2' -codec copy output


来源:

或者,作为第一步,他可以将他的简介视频转换为与用户视频匹配的分辨率,必要时添加填充。这样他就能处理所有可能的解决方案。然后,他可以缓存结果以加快后续相同分辨率视频的速度。但我如何确定转换视频所需的内容?视频将使用php上传,然后exec()将运行ffmpeg命令。上传视频后,运行ffprobe并解析结果以获得视频的宽度和高度。
ffmpeg -i opening.mkv -i episode.mkv -i ending.mkv -filter_complex '[0:0] [0:1] [1:0] [1:1] [2:0] [2:1] concat=n=3:v=1:a=1 [v] [a]' -map '[v]' -map '[a]' output.mkv
$ cat mylist.txt
file '/path/to/file1'
file '/path/to/file2'
file '/path/to/file3'

$ ffmpeg -f concat -i mylist.txt -c copy output