项目笔记第三天 | 青训营笔记

123 阅读2分钟
这是我参与「第五届青训营 」伴学笔记创作活动的第12天。

今天主要是解决获取视频封面的问题。由于群里有大佬说用ffmpeg截取视频第一帧图像作为视频封面,这里我们也采用ffmpeg去实现这个问题。

一、实现方法

首先电脑要安装ffmpeg,这里就不写安装教程了,网上都有。该工具主要是能够使用命令行执行ffmpeg命令对媒体进行操作。

ffmpeg -i ./bear.mp4 -ss 1 -f image2 ./bear.jpg

在视频所在文件夹下打开cmd,输入该指令。其中-i后面跟随的是输入视频的地址,-ss后面跟的是截取第几帧作为封面,-f后面跟的是转换格式以及转换地址。

这里可以看到当前文件夹目录下能够生成图片。

1.jpg

二、实现过程

cmd := exec.Command("ffmpeg", "-i", videoAddress, "-ss", "1",
        "-f", "image2", pitAddress)
if err := cmd.Run(); err != nil {
    fmt.Print(err)
}

这里就不作解释了,go调用命令的方法。我们只需要在保存视频代码后面添加这段保存封面代码。因为前面的代码已经在服务端保存了客户端发布的视频,我们只需要调用终端把视频地址作为输入,然后在服务端输出生成的图片。而数据库里面保存了视频地址和封面地址,我们在客户端也能访问这些图片和视频。

三、客户端测试

现在客户端发布视频能够立刻观看,

2.jpg

服务端也自动生成了相应的视频封面

3.jpg

四、问题

目前还没解决的问题有:无论点击哪个作者的头像,显示的视频都是DemoVideos里所有的视频,包括关注以及粉丝也是显示所有用户。这里我还没有想好应该怎样去分辨该用户关注了哪些用户,他的粉丝又有哪些。这里是否需要我们每次新建一个用户就要创建一个数据表,去保存他关注信息以及粉丝信息。

总结

其它进度今天不想写了,就是想单纯的介绍一下ffmpeg实现截取视频封面的功能。毕竟群里有大佬提出了这个方法,就想实现一下这个功能。参考链接是别人的一篇关于ffmpeg安装教程的文章。

参考

ffmpeg安装教程_moon son的博客-CSDN博客_ffmpeg安装