EFV 프레임 워크 업데이트, FluentAPI 및 CMS API2 공동 서비스 제공, 최소화 기능 모듈화, 나무 무료 조합, 6 FLUENTAPI 및 전체 세트를 완료 CMS API2
마지막으로 말씀드렸습니다 EFV 시스템은 건축을 재구성하고, 건축에 두 부분으로 나뉘어져 있으며, 일부는 FLuentAPI 모든 관련 비디오 처리 제공 API 시스템 자체를 호출할 수 있고, 어떠한 프로그램도 어디서나 호출될 수 있으며, 두 번째 부분은 CMS API2 이 부분은 API 그것은 완전한 내용과 관련이 있습니다 API- 로그인, 등록 또는 비디오 데이터를 요청하는 경우 재생 인기, 구매 VIP 구매 포인트, 전환 지불, 모두 완전히 제공되며 CMS 전화를 걸고 APP 전화는 매우 간단합니다, 누구나 그것을 사용해야 API 원하는 모든 것을 구축하거나 APP 아무런 잔치도 없다.
아키텍처 지도

업데이트 내용
-
- 완성된 전체
CMS API콘텐츠 방향의 모든 내용을 커버하고, 이로 인해 완전한 상업용flutter작성된APP.
- 완성된 전체
- 둘째, 상업적 수준
flutter작성된APP소스 코드는 완전히 완료되고, 최종 테스트를 수행하고 있으며, 꽃이 피는 것을 거부하고, 지능적으로 추천하는 알고리즘과CMS API2함께 완성, 원래 시스템60텐이 도착120그들의 경험이 흐르고, 그렇지 않습니다weex그리고 어떤h5건설은 비교할 수 있다. -
- 완료되었습니다
6하나의Flent API이번에는API포함: 단일 촬영을 생성, 대량 촬영, 역동적 인 그림을 생성을 생성하고 시험 보기를 생성m3u8내용은 서버 끝에 따라m3u8실시간 합성mp4비디오를 얻기metadata이전 정보 입니다.
- 완료되었습니다
-
- 역동적으로 생성된 스크립트를 기반으로 시험을 만들고
m3u8실시간으로 역동적 인 그림을 만드는 방법FLUENTapi제3자에 맞게 완성되었습니다m3u8지원하고, 제3자에 의해m3u8또한 루터 권한 수준의 테스트 기능을 지원할 수 있습니다.
- 역동적으로 생성된 스크립트를 기반으로 시험을 만들고
Fluent API
이번에만 완성된 내용을 소개합니다 Fluent API 예를 들어, 원격 파일이 있습니다 트랜스코딩 첨부 워터마크 추가 첨가하기 워터마크 제거 템플릿 추가 흐르는 텍스트 기다리세요 API.
팁 : 아래의 모든 API 서버에 있는 비디오 파일뿐만 아니라 원격 링크 형식의 모든 비디오를 사용할 수 있습니다.
단일 촬영을 만들기
post: /apifluent/screenshot
body: {
apikey,
apisecret,
path, // 支持服务器视频文件绝对路径,服务器视频相对路径,服务器源码目录相对路径,远程m3u8连接,远程视频文件链接等。
duration, // 需要截图视频什么时间的画面,单位是秒。
}
response: {
success: 0|1, // 成功或者失败
error, // 如果失败会返回错误信息。
screenshot, // 截图的链接。
}
path 지원 형식 :"/path/2.m3u8"、"./public/videos/3.mp4"、"public/videos/4.m3u8", “https://www.leimulamu.com/videos/202006/12/5ed37e23d6334d5540c43b00/d1052c/index.m3u8“,
“https://www.moemv.com/videos/6.mp4“
아래의 모든 API 만약 있다면 path 파라미터, 지원 형식은 모두 그렇습니다.
수량으로 촬영한 사진
post: /apifluent/screenshots
body: {
apikey,
apisecret,
path,
counts //截图数量,会根据视频时间轴,均分截取,比如10秒视频,设置counts为3,则可能截图3,6,9秒的画面。
}
response: {
success: 0|1,
error, //如果有错误信息会返回错误信息。
screenshots, //数组,包含所有截图链接。
}
역동적 인 그림을 만들기
post: /apifluent/togif
data: {
apikey,
apisecret,
path, //必填,下面的参数选填。
duration, // 生成多少秒动态图,默认1秒
width, //动态图宽度,高度自适应, 默认400宽度
gifstart, // 从视频多少秒开始生成, 默认10秒
auto //是否自动截取视频最中间位置,接收1或0,设置了auto,则gifstart是否设置都无效,默认是0。
}
response: {
success: 0|1,
error,
gif //动态图链接
}
비디오 미터 정보, 즉 메타데이터 정보를 얻는 방법
post: /apifluent/metadata
body: {
apikey,
apisecret,
path
}
response: {
success: 1|0,
error,
data // 视频的各种信息,包括音频流,视频流等。
}
data样式:
{
"success": 1,
"data": {
"streams": [
{
"index": 0,
"codec_name": "h264",
"codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
"profile": "High",
"codec_type": "video",
"codec_time_base": "1/48",
"codec_tag_string": "avc1",
"codec_tag": "0x31637661",
"width": 854,
"height": 480,
"coded_width": 864,
"coded_height": 480,
"has_b_frames": 2,
"sample_aspect_ratio": "N/A",
"display_aspect_ratio": "N/A",
"pix_fmt": "yuv420p",
"level": 30,
"color_range": "unknown",
"color_space": "unknown",
"color_transfer": "unknown",
"color_primaries": "unknown",
"chroma_location": "left",
"field_order": "unknown",
"timecode": "N/A",
"refs": 1,
"is_avc": "true",
"nal_length_size": 4,
"id": "N/A",
"r_frame_rate": "24/1",
"avg_frame_rate": "24/1",
"time_base": "1/24",
"start_pts": 0,
"start_time": 0,
"duration_ts": 1253,
"duration": 52.208333,
"bit_rate": 537875,
"max_bit_rate": "N/A",
"bits_per_raw_sample": 8,
"nb_frames": 1253,
"nb_read_frames": "N/A",
"nb_read_packets": "N/A",
"tags": {
"creation_time": "1970-01-01T00:00:00.000000Z",
"language": "und",
"handler_name": "VideoHandler"
},
"disposition": {
"default": 1,
"dub": 0,
"original": 0,
"comment": 0,
"lyrics": 0,
"karaoke": 0,
"forced": 0,
"hearing_impaired": 0,
"visual_impaired": 0,
"clean_effects": 0,
"attached_pic": 0,
"timed_thumbnails": 0
}
},
{
"index": 1,
"codec_name": "aac",
"codec_long_name": "AAC (Advanced Audio Coding)",
"profile": "LC",
"codec_type": "audio",
"codec_time_base": "1/48000",
"codec_tag_string": "mp4a",
"codec_tag": "0x6134706d",
"sample_fmt": "fltp",
"sample_rate": 48000,
"channels": 2,
"channel_layout": "stereo",
"bits_per_sample": 0,
"id": "N/A",
"r_frame_rate": "0/0",
"avg_frame_rate": "0/0",
"time_base": "1/48000",
"start_pts": 0,
"start_time": 0,
"duration_ts": 2493440,
"duration": 51.946667,
"bit_rate": 126694,
"max_bit_rate": 128000,
"bits_per_raw_sample": "N/A",
"nb_frames": 2435,
"nb_read_frames": "N/A",
"nb_read_packets": "N/A",
"tags": {
"creation_time": "1970-01-01T00:00:00.000000Z",
"language": "und",
"handler_name": "SoundHandler"
},
"disposition": {
"default": 1,
"dub": 0,
"original": 0,
"comment": 0,
"lyrics": 0,
"karaoke": 0,
"forced": 0,
"hearing_impaired": 0,
"visual_impaired": 0,
"clean_effects": 0,
"attached_pic": 0,
"timed_thumbnails": 0
}
}
],
"format": {
"filename": "https://media.w3.org/2010/05/sintel/trailer.mp4",
"nb_streams": 2,
"nb_programs": 0,
"format_name": "mov,mp4,m4a,3gp,3g2,mj2",
"format_long_name": "QuickTime / MOV",
"start_time": 0,
"duration": 52.209,
"size": 4372373,
"bit_rate": 669979,
"probe_score": 100,
"tags": {
"major_brand": "isom",
"minor_version": "512",
"compatible_brands": "isomiso2avc1mp41",
"creation_time": "1970-01-01T00:00:00.000000Z",
"title": "Sintel Trailer",
"artist": "Durian Open Movie Team",
"encoder": "Lavf52.62.0",
"copyright": "(c) copyright Blender Foundation | durian.blender.org",
"description": "Trailer for the Sintel open movie project"
}
},
"chapters": []
}
}
시험해 보세요 m3u8 형식 텍스트
GET /apifluent/try
headers: {
apikey,
apisecret,
}
query: {
id:视频ID,
duration:试看时长,
hd:指定分辨率,
}
response: m3u8文本 //获取到文本可自行组装自己的m3u8路由。
비디오 ID 및 해상도에 따라 실시간으로 MP4를 생성
post: /apifluent/savestream
data: {
apikey,
apisecret,
id, //视频库中存在的转码完成的id,
hd //指定生成某分辨率,支持240,360,480,640,720,1080,1440,20000
}
response: {
success: 1|0,
host, // 服务端域名
path, // mp4链接
message // 显示信息
}
此API可用于提供下载功能时,无需保存mp4,完全实时根据m3u8生成mp4文件,并且返回,秒级反馈。


