我用于avconv
修剪和转换视频。假设我想删除一个一小时mts
文件的视频流的前 7 秒和最后 2.5 秒以及一个音频流:
avconv -i input.mts -map 0:0 -map 0:3 -ss 0:0:07 -t 0:59:50.5 out.mov
到目前为止,这是有效的,但现在我想通过添加以下内容在开始和结束时添加两秒的淡入和淡出:
-vf fade=type=in:start_frame=350:nb_frames=100 -vf fade=type=out:start_frame=178750:nb_frames=100
avconv
这些帧是根据视频源报告的50 fps 计算的。但既没有淡入也没有淡出。
1) 视频褪色是怎么回事以及如何解决? 2)如何添加音频淡入淡出。似乎有一个-afade
选择。但我没有找到它的记录。
或者,您可以建议使用不同的工具来实现此目标(修剪和淡入淡出视频和音频),最好以 Debian 8 的软件包形式提供。
答案1
我终于找到时间尝试@Mario G.建议的答案,但它看起来非常麻烦。我需要这样做几十次。我阅读了 的文档ffmpeg
,发现它比 强大得多avconv
,包括音频和视频的淡入淡出,所以解决方案是
ffmpeg -i input.mts -map 0:0 -map 0:3 -ss 0:0:07 -to 0:59:57.5 -vf 'fade=t=in:st=7:d=2,fade=t=out:st=3595.5:d=2,crop=out_h=692' -af 'afade=t=in:st=7:d=2,afade=t=out:st=3595.5:d=2' out.mov
因此淡入淡出的st=
和d=
参数需要以秒为单位的时间,无需转换为帧。
我还发现了-to
直接获取结束时间而不是计算长度的选项。
该命令执行所有步骤
- 频道选择
-map
, -ss
用和进行修剪-to
,- 视频淡入淡出
-vf
选项fade=t=in
和fade=t=out
, - 音频淡入淡出与
-af
选项afade=t=in
和afade=t=out
-vf
带有选项的裁剪crop=
只需一步。
答案2
修剪:
ffmpeg -i input.mts -ss 00:00:20.0 -c copy -t 00:00:30.0 output.mkv
寻找 20 秒 -(i)n input.mkv(默认情况下丢弃)让它播放 30 秒并丢弃其中的其他所有内容。这样你就有了一个 30 秒的视频。
褪色
首先,您需要为淡入淡出创建图像。可能是单个 *.png 图像,全白或全黑,具体取决于您的口味。最好以与录制视频相同的分辨率进行录制。
ffmpeg -r 1/2 -i black.png -c:v libx264 -r 50 -y -pix_fmt yuv420p fade2s.mkv
这意味着,淡入淡出 2 秒(-r 输入:1 / 2 x 50 帧每秒 = 100 fps)。有关图像信息,您可以查看 The Gimp 或 ImageMagick。现在你已经得到了淡入淡出效果。
淡入:
ffmpeg -i fade2s.mkv -y -vf fade=in:0:50 fade_in.mkv
淡入从 0 到 50 帧(1 秒 - 50fps)
淡入+淡出: 将最后一个输入作为淡入并添加一些淡出
ffmpeg -i fade_in.mkv -y -vf fade=out:120:50 fade_in_out.mkv
完毕。