使用 ffmpeg 进行转码和生成缩略图。

3
使用ffmpeg,假设可以做到,我该如何将输入视频从一种格式转换为另一种格式(例如,从MPEG-2转换为MPEG-4),同时每隔n秒生成缩略图?
敬礼, 马特

http://trac.ffmpeg.org/wiki/Creating%20multiple%20outputs - Brad Werth
2个回答

2
这个命令将会把 in.flv 转码为 .webm 和 .mp4 格式,并同时生成一个缩略图。
ffmpeg -y -threads '1' -i 'in.flv' \
  -map '0:v' -map '0:a' -c:v 'libx264' -c:a 'libvo_aacenc' out.mp4 \
  -map '0:v' -map '0:a' -c:v 'libvpx' -c:a 'libvorbis' out.webm \
  -map '0:v' -r '1' -t '1' 'out.png'

为了每隔n秒生成一个缩略图,需要将-r(帧率)更改为n的倒数,并删除-t(以便在视频结束之前拍摄缩略图)。例如,要每隔4秒生成一个缩略图,您需要1/4的帧率。
ffmpeg -y -threads '1' -i 'in.flv' \
  -map '0:v' -map '0:a' -c:v 'libx264' -c:a 'libvo_aacenc' out.mp4 \
  -map '0:v' -map '0:a' -c:v 'libvpx' -c:a 'libvorbis' out.webm \
  -map '0:v' -r '1/4' 'out-%d.png'

-2

看看gstreamer,你可以在管道的每个阶段访问数据。因此,要将MPEG-4转换为MPEG-2,你可以这样做:

filesrc | decodebin | tee | jpegencode | filesink(thumbnail) tee | mpeg2enocde | filesink(mpeg2 file)

请查找gstreamer管道的确切元素。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接