服务器上批量将.mp4格式的视频转化成.m3u8的shell脚本

在服务器上批量将.mp4格式的视频转化成.m3u8的shell脚本

前半部分介绍如何安装软件以及每步骤的功能,后半部分为命令集合


一、准备步骤:

  • 服务器的某个文件夹下要存在.mp4文件,文件名为 xxxx.mp4
  • 在该文件夹中新建一个存放.m3u8的文件夹re
  • 安装好ffmpeg
1、下载源码

## 源码网站: https://gitee.com/mirrors/ffmpeg

## centos下载源码:
wget [email protected]:mirrors/ffmpeg.git


2、或者在本地下载然后把源码上传到linux文件夹/home/ffmpeg中,并解压

3、安装yasm,因为编译FFmpeg需要,我使用的是yum安装
yum install -y yasm

4、执行配置编译命令,当执行make命令时会经过很长的时间,不要中断
cd /home/ffmpeg
./configure
make
make install

5、查看是否安装成功
ffmpeg

出现一堆ffmpeg的信息就是成功了,例如
ffmpeg version 4.1 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-39)
...
...
...
  • 分步操作
1、首先将mp4格式文件转换为ts文件

ffmpeg -y -i input.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb input.ts

2、将ts文件转换为m3u8格式文件,按5秒钟拆分成若干ts文件

ffmpeg -i input.ts -c copy -map 0 -f segment -segment_list input.m3u8 -segment_time 5 input-%03d.ts

三、FFmpeg命令笔记

1、视频FPS帧数配置30帧,肉眼看25帧就成

ffmpeg -i a.mp4  -r 30 o.mp4

2、视频比特率配置1.5M每秒,越大的比特率视频越高清,越消耗网络带宽

ffmpeg -i input.mp4 -b 1.5M output.mp4

声明:
上面步骤来源于:FFmpeg(Linux)安装, MP4格式转m3u8格式


二、命令集合 bash.sh

#!/bin/bash
FOLDER="/www/wwwroot/m3u8"  ## 我的.mp4文件放在这里了
COMM=$(ls ${FOLDER})
END="-low"		## 降低帧率的生成文件名后缀
result="re"		## .m3u8文件存放地址
for GZ in $COMM
do
	
        if [[ $GZ =~ ".mp4" ]]; then
		FQ=${GZ:0:-4}
		echo $GZ
		## ffmpeg -i ${GZ}  -r 30 low2/${FQ}${END}.mp4
		echo "############################-------${GZ}--------begin##########################################################" 
		ffmpeg -y -i ${GZ} -vcodec copy -acodec copy -vbsf h264_mp4toannexb ${result}/${FQ}.ts
		ffmpeg -i ${result}/${FQ}.ts -c copy -map 0 -f segment -segment_list ${result}/${FQ}.m3u8 -segment_time 5 ${result}/${FQ}-%03d.ts

	fi
done

该bash.sh文件存放在mp4文件目录下(放在其他文件夹亦可以,需要调整开头的目录)

## 运行代码
bash bash.sh

你可能感兴趣的:(服务器)