Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video 将.mp4批量转换为hls分段流_Video_Ffmpeg_Batch Processing_Http Live Streaming - Fatal编程技术网

Video 将.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

我有一个系统设置,可以在每天结束时将多功能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: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
文件中,因为它不是批处理语言。是的,我已经找到了一个方法,现在一切都很好,我稍后会更新我的答案