免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1657 | 回复: 9

[文件目录] 求一个Shell脚本 [复制链接]

论坛徽章:
0
发表于 2014-10-17 13:49 |显示全部楼层
    有一批高清美剧,想压制成MP4,

    压制命令为

ffmpeg -i 输入文件.mkv -s 1024x576 -b:v 1800k -acodec aac -strict -2 -b:a 128k 输入文件.HR-HDTV.mp4
sleep 10m
rm 文件

批量压制,没压制完一集,CPU休息10分钟...然后删除原文件

其中输入文件可能是.mp4,.wmv,.mkv等视频格式,输出文件统一压制为HR-HDTV.mp4,保留原文件名,只是加了后缀HR-HDTV
求高人指点

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
发表于 2014-10-17 13:58 |显示全部楼层
把需要压制的视频文件名放到文件 list.txt 里面,比如:
a.wmv
b.mkv
c.avi
  1. while read line; do
  2.     ffmpeg -i "${line}.mkv" -s 1024x576 -b:v 1800k -acodec aac -strict -2 -b:a 128k "${line}.HR-HDTV.mp4"
  3.     if [ $? == 0 ]; then
  4.         sleep 600 && rm -f "${line}"
  5.     fi
  6. done < list.txt
复制代码

论坛徽章:
0
发表于 2014-10-17 14:18 |显示全部楼层
回复 2# Shell_HAT


    多谢!

    不过有个疑问,rm ${line}是删除list.txt里对应的行,还是删除实际的视频文件?

    2,可不可以把ls -S >> list.txt组合进来,就是进入包含视频的文件夹,直接生成文件列表,开始压制。

    另外,ffmpeg并不看文件名是wmv,mp4还是mkv,它自动调用可用解码器,并用x264编码,默认就是用libx264编码,不需要指定编码器。之所以有输入文件.mkv,是为了方便输出"文件.HR-HDTV.mp4"而不是"文件.mkv.HR-HDTV.mp4"?

    ls 输出的是整个文件名,包括扩展名,在ffmpeg 输出文件名截取掉后面4个字符,然后加上".HR-HDTV.mp4",这样能做到吗?

   

论坛徽章:
24
申猴
日期:2014-10-10 15:56:39射手座
日期:2014-10-10 15:57:18黑曼巴
日期:2018-05-14 11:05:122016科比退役纪念章
日期:2018-05-14 11:05:0715-16赛季CBA联赛之北控
日期:2018-05-14 11:05:0015-16赛季CBA联赛之江苏
日期:2017-02-27 18:11:0715-16赛季CBA联赛之上海
日期:2018-08-15 09:48:5415-16赛季CBA联赛之佛山
日期:2018-07-20 17:14:2315-16赛季CBA联赛之佛山
日期:2019-09-10 18:08:4615-16赛季CBA联赛之山西
日期:2020-03-26 09:40:5115-16赛季CBA联赛之佛山
日期:2020-05-08 09:03:54
发表于 2014-10-17 14:39 |显示全部楼层
LZ太人性话了,给CPU还留课间操时间

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
发表于 2014-10-17 15:11 |显示全部楼层
回复 4# chengchow

劳逸结合才能提高效率~{:3_193:}
   

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
发表于 2014-10-17 15:17 |显示全部楼层
回复 3# BlueSky_Yu84


问题有点多哈,一个一个来吧:
rm ${line}是删除list.txt里对应的行,还是删除实际的视频文件?

是删除实际的视频文件,你亲自做个试验就知道了。

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
发表于 2014-10-17 15:22 |显示全部楼层
可不可以把ls -S >> list.txt组合进来,就是进入包含视频的文件夹,直接生成文件列表,开始压制。

cd 视频的文件夹
ls -S > list.txt
你自己把这两行命令加到代码开头就行了

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
发表于 2014-10-17 15:31 |显示全部楼层
本帖最后由 Shell_HAT 于 2014-10-17 15:32 编辑
之所以有输入文件.mkv,是为了方便输出"文件.HR-HDTV.mp4"而不是"文件.mkv.HR-HDTV.mp4"?

不是。那个是我随便写的。
ls 输出的是整个文件名,包括扩展名,在ffmpeg 输出文件名截取掉后面4个字符,然后加上".HR-HDTV.mp4",这样能做到吗?

ffmpeg -i "${line}" -s 1024x576 -b:v 1800k -acodec aac -strict -2 -b:a 128k "${line/%????/}.HR-HDTV.mp4"

论坛徽章:
0
发表于 2014-10-29 01:33 |显示全部楼层
回复 8# Shell_HAT


    为什么只能压制一个,并不向下循环呢?

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
发表于 2014-10-29 08:09 |显示全部楼层
回复 9# BlueSky_Yu84


    bash -vx test.sh 看看停在哪一步了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP