Web app and libs for collecting and checking paper presentation material such as presentation videos and teaser images. Uploaded videos, images, and subtitles undergo several checks to make sure that they adhere to predefined format and quality requirements, including checks for background noise and speech volume. Uploads are transferred to and stored in the cloud (BunnyCDN). This project was originally developed and deployed to help with collecting additional material of papers and other presentations at the IEEE VIS 2023 conference and associated events.
The web app needs three configuration files in the folder 'config'.
{
"BunnyStorageZoneName": "",
"BunnyCdnRootUrl": "",
"BunnyAccessKey": "",
"BunnyBasePath": "",
"BunnyTokenKey": "",
"BunnyUserApiKey": "",
"AuthSignaturePrivateKey": "",
"FfprobePath": "",
"FfmpegPath": ""
}
Details
[
{
"Id": "video-full",
"Name": "Presentation Video",
"FileName": "Presentation",
"FileExtensions": [
"mp4"
],
"FileType": 0,
"IsOptional": false,
"PerformChecks": true,
"CheckInfo": {
"MinFileSize": 1024,
"MaxFileSize": 524288000,
"VideoRequirements": {
"MinDuration": "00:01:00",
"MaxDuration": "01:30:00",
"MaxRecommendedDuration": "00:20:00",
"PackageFormat": [
"mp4"
],
"VideoCodecs": [
"h264"
],
"AudioCodecs": [
"aac"
],
"FrameRates": [
"30/1"
],
"FrameSizes": [
{
"Width": 1920,
"Height": 1080
}
],
"MaxNumAudioChannels": 1,
"AspectRatio": "16:9",
"CheckVoiceRecording": true
},
"ImageMaxSize": null
}
},
{
"Id": "video-ff",
"Name": "Video Preview",
"FileName": "Preview",
"FileExtensions": [
"mp4"
],
"FileType": 0,
"IsOptional": false,
"PerformChecks": true,
"CheckInfo": {
"MinFileSize": 1024,
"MaxFileSize": 31457280,
"VideoRequirements": {
"MinDuration": "00:00:15",
"MaxDuration": "00:00:26",
"MaxRecommendedDuration": null,
"PackageFormat": [
"mp4"
],
"VideoCodecs": [
"h264"
],
"AudioCodecs": [
"aac"
],
"FrameRates": [
"30/1"
],
"FrameSizes": [
{
"Width": 1920,
"Height": 1080
}
],
"MaxNumAudioChannels": 1,
"AspectRatio": "16:9",
"CheckVoiceRecording": true
},
"ImageMaxSize": null
}
},
{
"Id": "video-full-subs",
"Name": "Presentation Video Subtitles",
"FileName": "Presentation",
"FileExtensions": [
"srt",
"sbv"
],
"FileType": 1,
"IsOptional": false,
"PerformChecks": true,
"CheckInfo": {
"MinFileSize": 10,
"MaxFileSize": 2097152,
"VideoRequirements": null,
"ImageMaxSize": null
}
},
{
"Id": "video-ff-subs",
"Name": "Video Preview Subtitles",
"FileName": "Preview",
"FileExtensions": [
"srt",
"sbv"
],
"FileType": 1,
"IsOptional": false,
"PerformChecks": true,
"CheckInfo": {
"MinFileSize": 10,
"MaxFileSize": 2097152,
"VideoRequirements": null,
"ImageMaxSize": null
}
},
{
"Id": "image",
"Name": "Representative Image",
"FileName": "Image",
"FileExtensions": [
"png"
],
"FileType": 3,
"IsOptional": false,
"PerformChecks": true,
"CheckInfo": {
"MinFileSize": 10,
"MaxFileSize": 5242880,
"VideoRequirements": null,
"ImageMaxSize": {
"Width": 1920,
"Height": 1080
}
}
},
{
"Id": "image-caption",
"Name": "Representative Image Caption",
"FileName": "Image",
"FileExtensions": [
"txt"
],
"FileType": 4,
"IsOptional": false,
"PerformChecks": true,
"CheckInfo": {
"MinFileSize": 10,
"MaxFileSize": 102400,
"VideoRequirements": null,
"ImageMaxSize": null
}
}
]
[
{
"EventId": "v",
"FilesToCollect": [
"video-full",
"video-full-subs",
"video-ff",
"video-ff-subs",
"image",
"image-caption"
]
}
]
To build the docker image using the Dockerfile, make sure have all the API keys and required info stored in a .env file, and then run the following command:
./docker_build.sh
To create a docker container:
docker run -d -p 5000:5000 --name ieee-vis-uploader-webapp-container ieee-vis-uploader-webapp
This project is MIT-licensed. Please refer to the LICENSE file in the root directory.
Copyright © Johannes Knittel