sh脚本工具集锦(文件批量操作、音视频相关)持续更新

1 文件夹目录下所有图片转换成视频文件

pic_2_videos.sh:

powershell 复制代码
#!/bin/bash
# 放到图片文件夹目录下,把所有jpeg图片推成视频文件
# sh pic_2_videos.sh 0
# 0: pad to 1920*1080 ; 1 or other no pad
pad_1920=$1

if [[ $pad_1920 = 0 ]]
then
    files=`ls|grep jpeg`
    for file in $files;do
      # 取图片文件名称
      file_name=${file%.*}
      echo $file_name" processing..."
      # scale把原图修改下分辨率,缺少的地方不剪切不拉伸而是加黑边,再把所有处理后的图片二次处理成视频
      ffmpeg -r 25 -loop 1 -i $file_name.jpeg -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2" -pix_fmt yuv420p -vcodec libx264 -b:v 600k -r:v 25 -preset medium -crf 30 -s 1920x1080 -vframes 250 -r 25 -t 10 $file_name.mp4
    done
else
    files=`ls|grep jpeg`
    for file in $files;do
      file_name=${file%.*}
      echo $file_name" processing..."
      # 不 pad
      ffmpeg -r 25 -loop 1 -i $file_name.jpeg -pix_fmt yuv420p -vcodec libx264 -b:v 600k -r:v 25 -preset medium -crf 30 -s 1920x1080 -vframes 250 -r 25 -t 10 $file_name.mp4
    done
fi

2 文件夹目录下所有文件按照序列顺序重新命名

rename.sh

powershell 复制代码
#!/bin/bash
# 放到文件目录下,执行 rename.sh prefix_ mp4 所有mp4文件会自动重新命名为 prefix_1.mp4、prefix_2.mp4、prefix_3.mp4....
i=1
prefix=$1
type=$2
file_list=`ls |grep $type`
for file in $file_list;
do
  new_str=$prefix"_"$i".$type"
  echo $new_str
  mv $file $new_str
  (( i++ ))
  sleep 0.2
done

3 h265视频文件不能播放、音频编码异常导致不能播放

查了下音频编码格式不兼容,ffprobe 查看视频音频编码确实是pcm_alaw

重新编码成h264

toh264.sh:

powershell 复制代码
#!/bin/bash
# 脚本复制到文件目录下,执行sh toh264.sh即可。sh toh264.sh aa:会跳过名称包含aa的视频文件
exclude_filter=$1
if [[ -z $filter ]]
then
    files=`ls|grep mp4`
else
    files=`ls|grep mp4 |grep -v $exclude_filter`
fi

for file in $files;do
	echo $file
	ffmpeg -i $file -map 0 -c:a copy -c:s copy -c:v libx264 new_$file
	rm -rf $file
done
相关推荐
邪恶的贝利亚4 小时前
FFplay 音视频同步机制解析:以音频为基准的时间校准与动态帧调整策略
音视频
路溪非溪5 小时前
音频/AI/BLE/WIFI/玩具/商业等方向的论坛网站总结
音视频
flex88886 小时前
FramePack - 开源 AI 视频生成工具
人工智能·开源·音视频
Eric.Lee20217 小时前
Ubuntu shell指定conda的python环境启动脚本
python·ubuntu·conda·shell
EasyDSS10 小时前
WebRTC技术下的EasyRTC音视频实时通话SDK,助力车载通信打造安全高效的智能出行体验
人工智能·音视频
Eric.Lee202110 小时前
python opencv 将不同shape尺寸的图片制作video视频
python·opencv·音视频
灰色人生qwer20 小时前
使用WebSocket实现跨多个服务器传输音频及实时语音识别
websocket·音视频·实时传输
小鱼仙官1 天前
Ubuntu 编译SRS和ZLMediaKit用于视频推拉流
音视频
摆烂仙君1 天前
视频分辨率增强与自动补帧
音视频
小冯的编程学习之路1 天前
【软件测试】:推荐一些接口与自动化测试学习练习网站(API测试与自动化学习全攻略)
c++·selenium·测试工具·jmeter·自动化·测试用例·postman