全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 623|回复: 9

[Windows VPS] 请教一下各位大佬关于linux 批量获取文件的问题

[复制链接]
发表于 2018-9-3 15:57:20 | 显示全部楼层 |阅读模式
最近在折腾一个转码的小东西,但是在批量转码的时候,不知道怎么来执行了,我在网上找了些。但是报错。麻烦各位大佬帮看看,感谢!

我是这样写的:

  1. for %%a in ("*.mp4") do ~/bin/ffmpeg -i "%%a" -c:v libx264 -c:a aac -strict -2 -f hls -hls_time 15 -hls_list_size 0 "%%a.m3u8"
复制代码


但是系统报错:

  1. bash: syntax error near unexpected token `('
复制代码


我看网上有人说是要转义括号,所以我改了一下:

  1. for %%a in \("*.mp4"\) do ~/bin/ffmpeg -i "%%a" -c:v libx264 -c:a aac -strict -2 -f hls -hls_time 15 -hls_list_size 0 "%%a.m3u8";
复制代码


但是回车后 就一直显示:

  1. >
复制代码


我最终需要的是获取该文件下所有后缀为mp4并切片生成一个m3u8的文件
发表于 2018-9-3 16:01:14 | 显示全部楼层
看样子是windows的写法,楼下告诉你linux下的写法
 楼主| 发表于 2018-9-3 16:04:17 | 显示全部楼层
adminii 发表于 2018-9-3 16:01
看样子是windows的写法,楼下告诉你linux下的写法

  啊  我看网上都是这样的。我也不知道啊。
下面这个是ffmpeg的执行命令
  1. ffmpeg -i test.mp4 -c:v libx264 -c:a aac -strict -2 -f hls -hls_time 15 -hls_list_size 0 test.m3u8
复制代码

但是怎么批量执行我就纠结了。
 楼主| 发表于 2018-9-3 17:07:50 | 显示全部楼层
自己顶一下。
发表于 2018-9-3 17:16:42 | 显示全部楼层
for i in *.mp4 ;do
    ffmpeg -i "$i" -c:v libx264 -c:a aac -strict -2 -f hls -hls_time 15 -hls_list_size 0 "$i.m3u8"
done
发表于 2018-9-3 17:27:00 | 显示全部楼层
  1. for f in *.rmvb;
  2. do
  3.         echo $f
  4.         ffmpeg -i $f -c:v libx264 -strict -2  ${f%%.*}.mp4
  5. done
复制代码


我用这个 - -
 楼主| 发表于 2018-9-3 17:32:23 | 显示全部楼层
tinyfish 发表于 2018-9-3 17:16
for i in *.mp4 ;do
    ffmpeg -i "$i" -c:v libx264 -c:a aac -strict -2 -f hls -hls_time 15 -hls_list ...

感谢! 兄弟,再请教一个问题哈。如果我在转码的时候新建一个同名文件夹并将转码文件输入到这个同名文件夹内。要怎么实现呢?我测试了一下 直接
  1. ffmpeg -i test.mp4 -c:v libx264 -c:a aac -strict -2 -f hls -hls_time 15 -hls_list_size 0 test/test.m3u8
复制代码

这样的话 报错 提示没有这个文件夹。
 楼主| 发表于 2018-9-3 17:33:27 | 显示全部楼层

感谢! 兄弟,再请教一个问题哈。如果我在转码的时候新建一个同名文件夹并将转码文件输入到这个同名文件夹内。要怎么实现呢?我测试了一下 直接
  1. ffmpeg -i test.mp4 -c:v libx264 -c:a aac -strict -2 -f hls -hls_time 15 -hls_list_size 0 test/test.m3u8
复制代码

这样的话 报错 提示没有这个文件夹。
发表于 2018-9-3 17:42:56 | 显示全部楼层
本帖最后由 tinyfish 于 2018-9-3 17:45 编辑
  1. for i in *.mp4 ;do
  2.     mkdir -p "${i%.mp4}"
  3.     ffmpeg -i "$i" -c:v libx264 -c:a aac -strict -2 -f hls -hls_time 15 -hls_list_size 0 "${i%.mp4}/${i%.mp4}.m3u8"
  4. done
复制代码
 楼主| 发表于 2018-9-3 17:54:12 | 显示全部楼层

  感谢! 感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-3-7 22:40 , Processed in 0.067869 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表