关于视频流格式和如何保存咨询

这里目前实现类视频流数据的获取,获取到buffer,目前想了解的是,这个视频流的buffer是什么格式的 如何保存成图片呢

API10 Devstudio 4.1 华为mate 60pro

HarmonyOS
2024-05-09 22:33:25
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
QW_MA
createImageReceiver(): image.ImageReceiver { 
let receiver: image.ImageReceiver = image.createImageReceiver(cameraWidth, cameraHeight, 2000, 8); 
receiver.on(‘imageArrival’, () => { 
receiver.readNextImage((err: BusinessError, nextImage: image.Image) => { 
if (err || nextImage === undefined) { 
return; 
} 
nextImage.getComponent(image.ComponentType.JPEG, async (err: BusinessError, imgComponent: image.Component) => { 
if (err || imgComponent === undefined) { 
return; 
} 
if (imgComponent.byteBuffer as ArrayBuffer) { 
let sourceOptions : image.SourceOptions = { 
sourceDensity: 120, 
sourcePixelFormat: 8, // NV21 
sourceSize: { 
height: previewProfilesObj3.size.height, 
width: previewProfilesObj3.size.width 
} 
} 
let imageResource=image.createImageSource(imgComponent.byteBuffer,sourceOptions) 
let decodingOptions: image.DecodingOptions = { 
editable: true, 
desiredPixelFormat: 3, 
} 
this.pixma=await imageResource.createPixelMap(decodingOptions) 
const imagePackerApi = image.createImagePacker(); 
let packOpts: image.PackingOption = { format: “image/jpeg”, quality: 98 }; 
const context: Context = getContext(this); 
const path1: string = context.cacheDir + “/pixel_map86695.jpg”; 
imagePackerApi.packing(imageResource, packOpts).then((data: ArrayBuffer) => { 
// data 为打包获取到的文件流,写入文件保存即可得到一张图片 
if (data) { 
let buf: buffer.Buffer = buffer.from(data ); 
let base64Url: string = buf.toString(‘base64url’, 0, buf.length); 
console.log(‘66666’+JSON.stringify(base64Url)) 
 
          let file = fs.openSync(path1, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); 
 
          fs.write(file.fd, data).then(async (writeLen) => { 
            console.info("write data to file succeed and size is:" + writeLen); 
fs.closeSync(file); 
}).catch((err: BusinessError) => { 
console.info("write data to file failed with error message: " + err.message + ", error code: " + err.code); 
}); 
} 
}).catch((error: BusinessError) => { 
console.error('Failed to pack the image. And the error is: ’ + error); 
}) 
this.pixelmap=await imageResource.createPixelMap(); 
} else { 
return; 
} 
}) 
}) 
}) 
return receiver; 
}
分享
微博
QQ
微信
回复
2024-05-10 10:52:20
相关问题
请问视频支持哪些格式
120浏览 • 1回复 待解决
关于如何使用鸿蒙接收视频
2025浏览 • 0回复 待解决
聊一聊关于流转问题咨询
5494浏览 • 1回复 待解决
视频都支持哪些编码格式
152浏览 • 1回复 待解决
如何视频保存到相册以及主机端
4005浏览 • 1回复 待解决
怎么把视频保存到相册以及主机端?
2509浏览 • 1回复 待解决
如何用websocket发送音频?
2250浏览 • 1回复 待解决
如何解决预览黑屏的问题
356浏览 • 1回复 待解决
如何连续获取相机预览数据
120浏览 • 1回复 待解决
如何对常见密钥进行格式转换
199浏览 • 1回复 待解决
如何实现视频滤镜效果
619浏览 • 1回复 待解决
如何删除已完成的redis事件?
1525浏览 • 1回复 待解决