ffmpeg linux命令行 虚拟机centos7.6

ffmpeg linux命令行 虚拟机centos7.6
转码切片
#!/bin/bash
#根据这个网址(https://www.johnvansickle.com/ffmpeg/faq/)安装ffmpeg环境,因为需要多种的编码器。这个可以满足现在的这个脚本
original=$1
fenbianlv=$2
crf=$3
#文件路径 影片名字/4k/影片名字.mp4 | 影片名字/1080/影片名字.mp4 | 影片名字/720/影片名字.mp4 | 影片名字/480/影片名字.mp4
dir=
echo $original
echo $fenbianlv
echo $crf
echo $dir

check whether file is exist

if $original de chang du wei 0 huo bu $original bu shi chang gui wenjian

if [ -z $original ] || [ ! -f $original ]; then #判断位置变量没有值或者不是一个文件就退出
echo “file $original not exist!”
exit
fi

check whether file is end of ‘.mp4’ or whether it is h264 encodeing.

显示 以 .mp4结尾的文件名字或者 h264编码的文件名字 不需要转换的啊

if [ -n “echo $1 | sed -n /.mp4\$/p” ] && [ ffprobe -show_streams $1 | grep "codec_name=h264" ]; then
echo “Don’t need convert!”
else
#截取文件最长的字符串,比如 文件的名字是 a.html.dds.dd.ddedeers.sd.date.mp4, 在这里值截取 .mp4 以前的字符为target
target=KaTeX parse error: Expected '}', got '#' at position 23: …al%.*}.mp4 #̲文件的临时名字 …{original%.*}date +%N.mp4
#-c:v h264格式-s 分辨率-perset 转码压缩速度(veryfast fast slower veryslow) -crf 码率取值范围(0-51)建议取值16-26,取值越大文件
越小清晰度也越差 -c:a 音频格式 aac
ffmpeg -i $original -c:v libx264 -s $fenbianlv -preset fast -crf $crf -c:a aac $dir

#切片m3u8文件
#将MP4文件转换成ts文件
wen=${target%.*}.ts
ffmpeg -y -i $target -vcodec copy -acodec copy -vbsf h264_mp4toannexb $wen

#$wen 是源文件名,playlist.m3u8是生成的m3u8文件名,10 是切片秒数,output%03d.ts是输出文件名
ffmpeg -i $wen -c copy -map 0 -f segment -segment_list $dir/playlist.m3u8 -segment_time 10 $dir/output%03d.ts

参考很多文档,自己记录的脚本,是否正确不敢保证。

你可能感兴趣的:(shell脚本)