使用FFMPEG为黑群晖VideoStation内的影片生成缩略图

2019-02-24 11:06:07 23点赞 138收藏 32评论


前言

此前一时兴起组装了一台Dan Case A4机箱的itx,于是旧的机箱就闲置了,一起闲置的还有一些旧硬盘,遂萌生了组建一台NAS的想法。系统的选择上黑群晖早已名声在外;以黑群晖为关键词搜索,目之所及遍地结实黑群晖的安装教程,我在这里就不多赘述了,我自己的黑群晖是VMware里安装的黑群晖,DSM版本是5.2-5967。关于NAS的用途,对我来说主要还是用来储存视频文件的,包括且不限于过去硬盘里存的动画、电影以及录像,DSM可以通过挂载NFS的方式将硬盘里的视频加载到VideoStation里,但是却很神秘的没有缩略图,通过标题尚且可以分辨电影、动漫,但是那些以日期为标题的录像视频以及各式各样的番号在没有缩略图的情况下想找到自己想要的视频简直令人抓狂,于是我参考了,通过此方法可以自己创建缩略图,但是5.2的ash shell似乎没有办法顺利运行。

折腾

虽然没有办法正常运行,但是大致的思路已经有了,作为一个计算机中级低手,当然要折腾一下了。群晖的缩略图都是保存在视频文件夹内一个叫@eaDir的子文件夹下的,这个文件夹里又有许多与视频同名的文件夹,里面保存的就是视频的截图,图片的文件名也都是一致的,那么只需要自己手动在对应文件夹里生成一张这样的图片不就好了?

在套件中心安装ffmpeg

要制作一样东西就需要对应的工具,生成缩略图就为黑群晖安装一个ffmpeg。浏览器登陆DSM后打开套件中心,将信任层级设置为任何发行者,在套件来源处新增

选择任何发行者选择任何发行者

增加Synocommunity增加Synocommunity

设置完成之后选择左下角的社群后,在套件中心里找到ffmpeg安装即可,这里同时可以找到python3并且安装,作为中级电脑低手的我对于其作用并不明确,但是因为代码是拿python3写的,所以我装了。

P.S.:事实上群晖自带了一个ffmpeg,并且我惊喜的发现他可以正常的生成单张截图的时候,于是立刻将脚本复制到NAS上运行,这时诡异的一幕出现了——批量生成的图片竟然都是同一张。夜深人静的屋里只有空调外机发出的间歇咆哮,留下videostation里几排一模一样的封面和在空调热风中凌乱的我(我一度以为是代码的问题直到我在自己的电脑上运行的时候发现结果完全正常)。

让ffmpeg正常工作

由于需要用到ssh,在浏览器界面找到SSH并打开,windows用户下载putty,linux和osx可以直接用命令行连接服务器,我用的是osx所以无法在这里演示putty的使用方法,所以请自行百度一下;osx的用户打开终端之后输入ssh root@192.168.1.x(NAS的局域网ip地址)之后输入管理员密码即可。

登陆NAS之后,输入ffmpeg -version即可查看当前ffmpeg的版本号,如果和你在套件中心安装的ffmpeg版本号不同那么执行如下操作:

mv /usr/bin/ffmpeg /usr/bin/ffmpeg_bak

cp -r /usr/local/ffmpeg/bin/ffmpeg /usr/bin/ffmpeg


安装python3:

mv /usr/bin/python /usr/bin/python_bak

cp -r /usr/local/python3/bin/python3 /usr/bin/python

python --version

如果显示python 版本为3.5即表明完成


再次执行ffmpeg -version查看ffmpeg的版本号

显示版本号为4.1,与套件中心显示的4.1-11一致显示版本号为4.1,与套件中心显示的4.1-11一致

将脚本复制到NAS

脚本下载链接 提取码: fdm4

建议创建一个新的共享文件夹作为测试,里面拷贝一些测试的视频。

通过网页登陆DSM将代码上传的共享文件夹根目录后,执行:

python /volume1/xxx/photo_thumb.py(这里的路径就是上传代码的文件路径)

中文字似乎会乱码但是生成的缩略图正常中文字似乎会乱码但是生成的缩略图正常

默认会生成mp4、avi、wmv、mkv、flv文件的缩略图,其他格式的如有需要,在代码types的中括号里添加文件格式并用英文逗号隔开,外面添加英文单引号即可。

ffmpeg默认不能生成rmvb和rm的缩略图,由于我这里测试发现VideoStation自己会生成rmvb的缩略图,所以并不提供解决办法。

最后在任务计划里添加把之前python运行的命令添加进去设置每天运行就可以了,如果添加了新的共享文件夹需要增加对应的命令,脚本会对文件夹进行遍历,所以有子文件夹时只需要在根目录运行脚本就可以。

写在最后

由于写文的初衷是希望帮助更多小白,所以许多非常简单的操作也进行了详细描述,但是由于出自本中级电脑低手,如有难以理解之处欢迎小白提问,有不足之处欢迎高手进行指点,有文笔不周之处那就贻笑大方之家了!虽然已是大年初一之后近三周,还是祝大家新的一年里一帆风顺,各位下回见。

关于DS PHOTO的缩略图生成脚本(默认只生成mp4缩略图): 链接 提取码: epyi 使用黑裙系统数据: 产品型号:DS3615xs DSM版本:DSM 5.2-5967 DSM版本日期:2016/04/26 理论上5.2都可以使用这种方法,6.0级以上有其他方法可使用,请直接略过本篇。 无法生成缩略图时可以重命名文件,不要使用空格以及一些符号

展开 收起
32评论

  • 精彩
  • 最新
  • 对不起,我用plex

    校验提示文案

    提交
    之前一直把注意力放在怎么让videostation生成缩略图上,这么一说发现确实用第三方套件要方便不少,受教了

    校验提示文案

    提交
    我用plex扫描,服务器多了几个目录但都是空的,用plex ios能看缩略图,但是别的软件看不到,只能用dlna或者nfs只能访问视频目录,求帮助

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 6.21下,应该是只有photo文件夹下的可以这么弄,video文件夹下的不行。
    修改楼主代码成功了。

    校验提示文案

    提交
    我这个代码好像只能给5.2用,5.2和6.2的版本里缩略图的名字好像不一样;另外6.2版本好像说有使用DDSM进行半洗白就直接可以用官方的缩略图了,用不着我这么麻烦的

    校验提示文案

    提交
    6.2和5.2好像缩略图的名字格式不一样,另外6.2好像有使用DDSM半洗白的方法,直接就能用到官方的缩略图和转码了,比我这个笨办法方便不少

    校验提示文案

    提交
    收起所有回复
  • 大哥,我也是5.2的,用了脚本文件夹里有图了,但是在ds photo还是没有缩略图,我python -v是3.4有关系吗?

    校验提示文案

    提交
    肯定没关系,因为这个应该是我的问题,我只研究了一下怎么把video station里面的缩略图搞出来,DS photo我没怎么用过。。

    校验提示文案

    提交
    DS photo缩略图脚本也发了,使用方法和DS Video一样,放在照片根目录添加运行

    校验提示文案

    提交
    收起所有回复
  • 第一条命令打进去就提示Permission denied,是不是要先ROOT?

    校验提示文案

    提交
    登陆的时候就是root啊,另外可以试一下6.2 ddsm半洗白,可以正常生成缩略图,比跑脚本方便一些

    校验提示文案

    提交
    已经洗白,没缩略图…

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 我按步骤操作总算是生成缩略图了,可是图片都是扁的,如果手机横拍的视频正常的 竖拍就变了 可能是生成的缩略图长宽比例是固定的 人物变形,有什么办法可以解决么

    校验提示文案

    提交
    现在推荐升一下系统版本了

    校验提示文案

    提交
    是升哪个系统版本呢? 是群晖升级吗 可以正常显示手机视频缩略图了?

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 为什么我缩略图都生成成功了,就是显示不出来呢

    校验提示文案

    提交
  • 保存在储存空间里的视频可以生成缩略图,NFS挂载的视频不能生成缩略图

    校验提示文案

    提交
    NFS挂载的照片里的视频可以生成缩略图吗??

    校验提示文案

    提交
    如果是说DS Video里的话只要是NFS的都不能生成

    校验提示文案

    提交
    收起所有回复
  • 发现存放电影的路径如果含有汉字或者特殊字符 读取缩略图就失败不显示

    校验提示文案

    提交
  • 兄弟,是只在video文件夹或者photo文件夹下增加py文件就行是吧?不用在子文件夹下加py文件?

    校验提示文案

    提交
  • 我感觉可能你的图片文件名生成错了。你那个参考帖子里,是把三个.fail文件替换成3个由ffmpeg生成的图片文件。
    话说我怎么打开nas云的帖子老是502错误啊

    校验提示文案

    提交
  • 输入这个之后python --version之后,,出现了,-ash:python:command not found,无法完成下面的步骤。。

    校验提示文案

    提交
    你这是没安装python,另外,楼主写的Python的路径是错的,正确的应该是/usr/local/bin/python,做个软链接过去就好了 ln -s /usr/local/bin/python /usr/bin/python

    校验提示文案

    提交
    收起所有回复
  • 小图的缩略图建议改成320x480,不然手机上的视频缩略图会被拉伸

    校验提示文案

    提交
  • 请问大神,如何可以在群晖NAS里看CDR的缩略图

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
138
扫一下,分享更方便,购买更轻松