接口规范 13. 文件上传及管理相关接口

网友投稿 183 2024-02-03


接口规范 13. 文件上传及管理相关接口

本文讲解"接口规范 13. 文件上传及管理相关接口",用于解决相关问题。

13 文件上传及管理相关接口

这组接口实现视频资源的上传及管理,为视频转码和发布提供支持。

上传的服务器上的视频文件,经过转码发布后形成可以对外播出的在线视频资源。

本小节描述文件上传和管理的接口,转码接口在下一章节说明。

13.1.文件上传接口

用途

通过HTTP POST协议上传视频文件。文件上传接口是一个特殊的接口,接口位置与其他接口有差异。

上传协议采用HTTP POST协议,提交form的数据采用multipart/form-data编码(enctype="multipart/form-data")。

这里有详细的规范(对于Web开发,通常您无需阅读这个文档):

rfc1867 http://www.ietf.org/rfc/rfc1867.txt

对于采用Web页面上传的应用,采用典型的form提交上传文件即可,数据提交地址设为本接口地址。请求

http://host/upload?app=g3_video&sub_path=&file_name=&token=abcd&field_name=field_abcd

其中:

http://host/upload 是上传位置,保持不变。host

替换成实际的流媒体服务器IP地址或域名。

参数:

app=g3_video

,表示上传的是视频文件,要保持不变。

sub_path表示上传到哪个子目录下,如果省略表示上传到用户根目录

下。

file_name

上传文件要在服务器上保存的文件名,如果跟上传文件名一样,则省略。该参数提供了一个上传文件在服务器上重新命名的机会。中文件名要采用UTF-8编码。

token意义跟其他接口一样。 响应 { "code":0 }

13.2.查询文件列表接口

用途查询服务器上的某个目录下的视频文件列表。请求

fileMgr/?request=list_files&subpath=&page=1

sub_path 文件存放的子目录,对应上传文件时的sub_path参数。如果省略,则查询用户根目录

下的文件。

page页码,该接口支持分页查询,分页信息在返回数据中。 响应{ "code":0, "data":{ "page":"1", "page_size":"50", "pages":"1", "total":"1", "count":1, "items":[{ "filename":"案例视频8.mp4", "mtime":"2018-01-12 12:43", "size":"3153954", "charset":"UTF-8", "timestamp":1515732410, "is_media":1, "duration":98, "bitrate":255309, "stream_number":2, "timestamp_m":1515397208, "streams":[ { "index":"0", "type":"video", "codec":"h364", "pic_width":640, "pic_height":352, "bitrate":208980, "duration":98, "pix_fmt":"yuv420p", "frame_rate":"28/1" }, { "index":"1", "type":"audio", "codec":"aac", "lan":"und", "channels":1, "bitrate":43970, "duration":98, "sample_rate":44100 } ] }] } }

返回数据包含分页信息,在文件量较大时要按页查询。

items元素包含0或多个文件信息。streams元素是该文件包含的音视频流信息,一个多媒体文件会包含1到多个音视频流

filename

文件名,返回的文件名总是采用UTF-8编码

charset

文件名在服务器上的字符集编码,省略表示是UTF-8编码。如果为非UTF-8编码,在后续的接口中请将该属性带入

mtime

文件最后的修改时间

size

文件大小,单位字节

duration

文件播出时长,单位秒

bitrate

综合码率,单位bps

stream_number

文件包含的音视频流总数

streams元素

streams

包含0或多个音视频流,属性:

index

流的索引编号,在转码接口中,在多语言音频流的情况下,可以通过传入音频流索引号选择指定的音频流。

type

视频或音频,对应 video 或 audio

codec

流编码格式,例如视频h364编码,音频aac编码等

bitrate

流的比特率,单位bps

pix_fmt

视频帧格式

frame_rate

帧率

pic_width

视频画幅宽度

pic_height

视频画幅高度

lan

音频语言信息,语言编码缩写

channels

音频声道数

sample_rate音频采样率

13.3.查询文件目录接口

用途查询服务器上的文件目录。请求

fileMgr/?request=list_dirs&subpath=

sub_path 文件存放的子目录,如果省略,则查询用户根目录下的文件目录。 响应{ "code":0, "data":{ "count":2, "items":[ { "filename":"auto", "mtime":"2018-01-06 16:36", "size":"4096", "timestamp":0, "auto_transcode":1 }, { "filename":"audio", "mtime":"2017-12-27 18:09", "size":"4096", "timestamp":0, "auto_transcode":0 }]} }

items元素包含0或多个目录信息。

filename

目录名

mtime

最后修改时间

auto_transcode 是否针对该目录设置了自动转码任务,1表示有自动转码任务

13.4.查询文件信息接口

用途查询服务器上的某个视频文件的信息。 请求

fileMgr/?request=get_file&filename=案例视频8.mp4&charset=UTF-8

filename

文件名,如果在子目录中,应当包含完整的相对目录,如 mypath/myfile.mp4,文件名采用UTF-8编码

charset文件名在服务器上的实际字符集编码,在查询文件列表接口中有返回。响应{ "code":0, "data":{ "count":1, "items":[ { "filename":"/案例视频8.mp4", "charset":"UTF-8", "mtime":1515732213, "size":3153954, "timestamp":1516941450, "is_media":1, "duration":98, "bitrate":255309, "stream_number":2, "timestamp_m":1515397208, "streams":[ { "index":"0", "type":"video", "codec":"h364", "pic_width":640, "pic_height":352, "bitrate":208980, "duration":98, "pix_fmt":"yuv420p", "frame_rate":"28/1" }, { "index":"1", "type":"audio", "codec":"aac", "lan":"und", "channels":1, "bitrate":43970, "duration":98, "sample_rate":44100 } ] } ] } }

返回一个文件的信息,包含多媒体信息。

返回数据的文件信息的描述与查询文件列表接口中对文件信息的描述相同。

13.5.删除文件接口

用途删除服务器上的文件。 请求

fileMgr/?request=remove&filename=myvideo.mp4&charset=ASCII

filename

文件名,如果在子目录中,应当包含完整的相对目录,如 mypath/myfile.mp4,文件名采用UTF-8编码

charset 文件名在服务器上的实际字符集编码,在查询文件列表接口中有返回。 响应 { "code":0 }

关于 "接口规范 13. 文件上传及管理相关接口"

编程技术 和 程序设计

本文讲解"接口规范 14.转码接口",用于解决相关问题。 14 转码相关接口14.1.转码接口用途对上传到服务器上的视频进行转码,转码后可以面向互联网或局域网发布播出。请求transcodeMgr ...


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java编程接口调用的作用及代码分享
下一篇:C#8.0 默认接口实现的实例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~