Video 将.mp4批量转换为hls分段流
我有一个系统设置,可以在每天结束时将多功能ip摄像机的视频录制到mp4文件中,并创建一个新文件夹,然后在接下来的几天内将价值相当于cam的视频片段保存在这里,日复一日 我正在尝试将这些mp4文件转换为分段的hls流。使用以下代码,我可以毫无问题地转换单个文件Video 将.mp4批量转换为hls分段流,video,ffmpeg,batch-processing,http-live-streaming,Video,Ffmpeg,Batch Processing,Http Live Streaming,我有一个系统设置,可以在每天结束时将多功能ip摄像机的视频录制到mp4文件中,并创建一个新文件夹,然后在接下来的几天内将价值相当于cam的视频片段保存在这里,日复一日 我正在尝试将这些mp4文件转换为分段的hls流。使用以下代码,我可以毫无问题地转换单个文件 ffmpeg -i cam10029.mp4 -threads 0 -vf scale=1280:-2:force_original_aspect_ratio=decrease -c:a aac -ar 48000 -b:a 128k -c
ffmpeg -i cam10029.mp4 -threads 0 -vf scale=1280:-2:force_original_aspect_ratio=decrease -c:a aac -ar 48000 -b:a 128k -c:v h264 -profile:v main -crf 20 -g 48 -keyint_min 48 -sc_threshold 0 -b:v 1500k -maxrate 2675k -bufsize 3750k -hls_time 6 -hls_playlist_type vod -hls_segment_filename index_%03d.ts index.m3u8
但每个文件夹中有时会有100-200个视频,一个接一个地执行此操作需要不断更改名称、重新运行命令,并且必须在完成时进行检查
我试过用这样的东西
for i in *.mp4;
do name=`echo "$i" | cut -d'.' -f1`
echo "$name"
ffmpeg -i "$i" "${name}.mov"
done
不幸的是,这在批处理文件中的windows上不起作用,它只是在屏幕上闪烁然后消失了
我现在正在使用Ubuntu18,想知道在这里是否有更好的方法
我想做的是运行一个convert.sh文件,让它找到文件夹中的所有视频,然后为第一个视频创建一个与视频同名的新文件夹,然后将其转换为分段流,并保存此文件夹中的.ts和.m3u8文件删除原始视频文件,然后移动到下一个文件,直到所有文件都在文件夹中转换,这样我就可以通过我的android应用程序链接到每个摄像头的m3u8文件您的Windows版本支持bash脚本吗?如果不是这样,您将不得不使用批处理文件。在Ubuntu中,你可以使用
find
。看到这一点。我已经准备好尝试上面提到的批处理文件,但它无法工作。我将查看您提供的链接。我的意思是,您不能将代码转储到.bat
文件中,因为它不是批处理语言。是的,我已经找到了一个方法,现在一切都很好,我稍后会更新我的答案