修改录制文件格式为浏览器支持的 fmp4(Fragmented MP4) 格式

This commit is contained in:
shikong 2023-09-11 14:10:13 +08:00
parent 6a86ab806f
commit 2e42490440
2 changed files with 5 additions and 4 deletions

View File

@ -17,7 +17,7 @@ import org.springframework.web.bind.annotation.*;
public class RecordController {
private final RecordService recordService;
@Operation(summary = "返回文件下载 http 头信息",description = "禁止多线程下载, 默认文件名为 record.flv")
@Operation(summary = "返回文件下载 http 头信息",description = "禁止多线程下载, 默认文件名为 record.mp4")
@RequestMapping(method = {RequestMethod.HEAD,RequestMethod.OPTIONS})
public void record(HttpServletResponse response){
recordService.header(response);

View File

@ -30,10 +30,10 @@ public class RecordService {
* @param response HttpServletResponse 响应
*/
public void header(HttpServletResponse response) {
response.setContentType("video/x-flv");
response.setContentType("video/mp4");
response.setHeader("Accept-Ranges", "none");
response.setHeader("Connection", "close");
response.setHeader("Content-Disposition","attachment; filename=\"record.flv\"");
response.setHeader("Content-Disposition","attachment; filename=\"record.mp4\"");
}
/**
@ -82,6 +82,7 @@ public class RecordService {
recorder.setFrameRate(grabber.getFrameRate());
recorder.setSampleRate(grabber.getSampleRate());
recorder.setOption("flvflags", "no_duration_filesize");
recorder.setOption("movflags","frag_keyframe+empty_moov");
if (grabber.getAudioChannels() > 0) {
recorder.setAudioChannels(grabber.getAudioChannels());
recorder.setAudioBitrate(grabber.getAudioBitrate());
@ -92,7 +93,7 @@ public class RecordService {
recorder.setVideoCodec(avcodec.AV_CODEC_ID_H264);
recorder.setPixelFormat(avutil.AV_PIX_FMT_YUV420P); // 视频源数据yuv
recorder.setAudioCodec(avcodec.AV_CODEC_ID_AAC); // 设置音频压缩方式
recorder.setFormat("flv");
recorder.setFormat("mp4");
recorder.setVideoOption("threads", String.valueOf(Runtime.getRuntime().availableProcessors())); // 解码线程数
recorder.start(grabber.getFormatContext());
log.info("开始录制 {}", url);