小编arl*_*dia的帖子

使用 -vcodec copy 时如何避免几秒钟的空白视频?

我正在使用 ffmpeg 在 CentOS Web 服务器上处理用户上传的视频。我需要将每个视频转换为标准大小和格式,然后从每个视频中提取 30 秒的示例剪辑。我想在提取命令中使用“-vcodec copy”标志以避免第二次编码。

此命令适用于我的初始转换:

ffmpeg -i uploaded.mov -f mp4 -vcodec libx264 -vpre medium -acodec libfaac -r 15 -b 360k -ab 48k -ar 22050 -s 480x320 formatted.mp4
Run Code Online (Sandbox Code Playgroud)

有时适用于提取:

ffmpeg -i formatted.mp4 -vcodec copy -acodec copy -ss 0 -t 30 formatted_sample.mp4
Run Code Online (Sandbox Code Playgroud)

但是,当我对某些视频运行提取命令时,提取的示例剪辑以几秒钟的空白视频开始。音频立即开始,但视频在 3-6 秒内没有开始。

为了演示这个问题,我上传了两个视频片段并在它们上运行上述命令。我在 Final Cut Express 中创建了第一个剪辑,并在上传到 Web 服务器之前使用 Handbrake 对其进行了编码:

1a)上传的剪辑

1b)用第一个命令转换

1c)用第二个命令提取,缺少前六秒

相比之下,第二个剪辑来自Apple的网站并没有显示问题:

2a)上传的剪辑

2b)用第一个命令转换

2c)用第二个命令提取,没问题

谁能看出这两个源剪辑有什么不同?如果是这样,我可以在我的转换命令中做些什么,以便在提取命令运行时,设置剪辑以避免丢失视频?

顺便说一句,我最初从 yum 安装 ffmpeg 0.6.1 时遇到了问题,但我升级到最新的 git …

linux ffmpeg video-conversion video-codecs

4
推荐指数
1
解决办法
5416
查看次数

标签 统计

ffmpeg ×1

linux ×1

video-codecs ×1

video-conversion ×1