使用ffmpeg切割和淡化ts段?

时间:2017-07-06 18:10:52

标签: ffmpeg

我正在尝试剪切ts片段并在剪切片段的初始点应用白色渐变。这用于我需要从视频开头“裁剪”某些素材并应用淡入淡出以获得更平滑的条目的情况。在我的测试中,我在5.5s标记处切割了一个8秒的段,产生了一个2.5秒的段,在第一秒内会从白色中消失。

cut命令本身工作正常:

ffmpeg  -i test.ts  -ss 5.5 -c:v libx264 -profile:v baseline -c:a aac -map 0 -mpegts_copyts 1  -preset ultrafast -f ssegment -initial_offset 5.5 -segment_format mpegts   ~/Desktop/cut%d.ts

我之前成功使用了这种淡入淡出过滤器语法:

-filter:v fade=t=in:st=0:d=1:color=0xffffff

但我似乎无法使整个事情发挥作用:

ffmpeg  -i test.ts  -filter:v fade=t=in:st=5.5:d=1:color=0xffffff  -ss 5.5 -c:v libx264 -profile:v baseline -c:a aac -map 0 -mpegts_copyts 1  -preset ultrafast -f ssegment -initial_offset 5.5 -segment_format mpegts   ~/Desktop/cut%d.ts

我收到以下错误:

x264 [错误]:基线配置文件不支持4:4:4

[libx264 @ 0x7fd9db002400]设置配置文件基线时出错。

[libx264 @ 0x7fd9db002400]可能的配置文件:baseline main high high10 high422 high444

初始化输出流0时出错:1 - 打开输出流编码器时出错#0:1 - 可能是不正确的参数,如bit_rate,rate,width或height

[aac @ 0x7fd9db001200] Qavg:nan

转换失败了!

我对ffmpeg的了解还不够深入,无法弄清楚为什么会发生这种情况。有什么想法吗?

谢谢, 马特

1 个答案:

答案 0 :(得分:0)

摆脱-profile:v baseline将解决'但是由于ffmpeg将为您自动选择个人资料high444,因此最终视频无法在许多玩家中播放。

相反,请使用

ffmpeg -i test.ts
-vf fade=t=in:st=5.5:d=1:color=0xffffff,format=yuv420p
-ss 5.5 -c:v libx264 -profile:v baseline -c:a aac -map 0 -preset ultrafast
-mpegts_copyts 1 -f ssegment -initial_offset 5.5 -segment_format mpegts ~/Desktop/cut%d.ts

基线配置文件仅支持YUV 4:2:0平面像素格式。