我把电影和连续剧集放在一个目录中,这个目录中显然有很多子目录和很多不同的格式。我们所有人都在不断添加新内容。我想做的是制作一个脚本,当我们中的一个人或所有人都添加了新内容时,我可以偶尔运行该脚本,该脚本将搜索该目录/子目录中的文件并将它们转换为 kodi/xbmc 可以流式传输到我可靠的旧 xbox 360 的格式。我正在运行 Gnome 16.04,我不确定这是否相关。
到目前为止,我已经找到了转换实际文件的代码;
for i in *mkv; do ffmpeg -i $i -vcodec copy -acodec copy "$i.mp4"; done
并且所有文件都位于;
/media/dave/Seagate Expansion Drive/Media
所以,这些就是我面临的问题。
mp4 是最好的选择吗?谷歌搜索并没有让我真正明白,有无数种不同的意见!到目前为止,它可以播放一些 MP4,但不是全部。
如何调整这一小行代码来搜索不仅仅是 mkv - 还有 mpeg、avi、wmv、mov,您能想到的一切!我是否需要为每种不同的文件类型重复这一行代码?
如何让它搜索子目录
如何让它仅在转换成功时删除原始文件
我如何设置 kodi/xbmc 以在启动时加载并最小化?
如能得到任何帮助、建议或指点来解决这个问题,我将不胜感激:)
答案1
如何让它搜索子目录
使用find
。
如何调整这一小行代码来搜索不仅仅是 mkv
使用-iregex
带有 的选项find
。
如何让它仅在转换成功时删除原始文件
你需要一个if
开关。
综合起来:
while IFS= read -r -d '' movie ; do
echo "Found: $movie"
convert_command="ffmpeg -i '$movie' -vcodec copy -acodec copy '$movie.mp4'"
if bash -c "$convert_command" ; then
echo "Converted to mp4"
rm "$movie"
else
echo "Convertation failed"
fi
done < <(find . -type f -iregex '.*\(mkv\|mpeg\|avi\|wmv\|mov\)' -print0)
我用了这答案是根据find
输出创建循环。
mp4 和 kodi/xbmc 在启动时最小化的优点和缺点是独立的问题,我建议您为每个问题创建单独的帖子。