
Recherche avancée
Autres articles (48)
-
MediaSPIP v0.2
21 juin 2013, parMediaSPIP 0.2 est la première version de MediaSPIP stable.
Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...) -
Mise à disposition des fichiers
14 avril 2011, parPar défaut, lors de son initialisation, MediaSPIP ne permet pas aux visiteurs de télécharger les fichiers qu’ils soient originaux ou le résultat de leur transformation ou encodage. Il permet uniquement de les visualiser.
Cependant, il est possible et facile d’autoriser les visiteurs à avoir accès à ces documents et ce sous différentes formes.
Tout cela se passe dans la page de configuration du squelette. Il vous faut aller dans l’espace d’administration du canal, et choisir dans la navigation (...) -
MediaSPIP version 0.1 Beta
16 avril 2011, parMediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)
Sur d’autres sites (7297)
-
ffmpeg seek calculating wrong byte range ?
17 décembre 2015, par user4455I’m running into an issue while trying to extract thumbnails from a movie file at a specific timestamp. Generally I’ve had no issues with this, but I’ve come across a set of movie files that are getting an error about the byte range requested (416 Requested Range Not Satisfiable).
The odd thing is that the server is correctly returning the content length in the partial content request, yet when it requests the movie file it requests a length that exceeds that.
This is a bit over my head, so I’m not sure what could be happening here. Any insight would be great.
The Command :
/usr/bin/ffmpeg -y -ss 1400 -i 'https://s3-us-west-2.amazonaws.com/my-bucket/mymoviefile.mp4' -qscale:v 2 -f image2 -vframes 1 -filter:v 'scale=192:108' -loglevel debug /data/www/storage/test.jpg 2>&1
The Error :
[https @ 0x22e1e00] header='HTTP/1.1 416 Requested Range Not Satisfiable'
[https @ 0x22e1e00] http_code=416
[https @ 0x22e1e00] HTTP error 416 Requested Range Not SatisfiableSource File Size :
1776706045 bytes
Source Content Duration :
2897.624271
Partial Content Request :
[https @ 0x22e1e00] header='HTTP/1.1 206 Partial Content'
[https @ 0x22e1e00] http_code=206
[https @ 0x22e1e00] header='x-amz-id-2: 4J1pgHExIUA0GxIxSBmGJjrRqliHbsIjXeuGzVfTlaaoVXbyZI5FQNma8fGaifcovkXfxJev5yU='
[https @ 0x22e1e00] header='x-amz-request-id: 78B3BDBB0356EF40'
[https @ 0x22e1e00] header='Date: Wed, 16 Dec 2015 23:51:29 GMT'
[https @ 0x22e1e00] header='x-amz-meta-content-length: 2898'
[https @ 0x22e1e00] header='x-amz-meta-cb-modifiedtime: Tue, 15 Dec 2015 17:59:51 GMT'
[https @ 0x22e1e00] header='Last-Modified: Wed, 16 Dec 2015 23:44:59 GMT'
[https @ 0x22e1e00] header='ETag: "6341a8022630667a8070a83575e542e7-27"'
[https @ 0x22e1e00] header='Accept-Ranges: bytes'
[https @ 0x22e1e00] header='Content-Range: bytes 0-1776706044/1776706045'
[https @ 0x22e1e00] header='Content-Type: video/mp4'
[https @ 0x22e1e00] header='Content-Length: 1776706045'
[https @ 0x22e1e00] header='Server: AmazonS3'
[https @ 0x22e1e00] header='Connection: close'FFmpeg Request :
request: GET /my-bucket/mymoviefile.mp4 HTTP/1.1
User-Agent: Lavf/56.25.101
Accept: */*
Range: bytes=1781732960-
Connection: close
Host: s3-us-west-2.amazonaws.com
Icy-MetaData: 1Entire Log :
# /usr/bin/ffmpeg -y -ss 1400 -i 'https://s3-us-west-2.amazonaws.com/my-bucket/mymoviefile.mp4' -qscale:v 2 -f image2 -vframes 1 -filter:v 'scale=192:108' -loglevel debug /data/www/storage/test.jpg 2>&1
ffmpeg version 2.6.4 Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.9.2 (Debian 4.9.2-10)
configuration: --prefix=/usr --extra-cflags='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security ' --extra-ldflags='-Wl,-z,relro' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-libvpx --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-librtmp --enable-avfilter --enable-libfreetype --enable-libvo-aacenc --disable-decoder=amrnb --enable-libvo-amrwbenc --enable-libaacplus --libdir=/usr/lib/x86_64-linux-gnu --disable-vda --enable-libbluray --enable-libcdio --enable-gnutls --enable-frei0r --enable-openssl --enable-libass --enable-libopus --enable-fontconfig --enable-libpulse --disable-mips32r2 --disable-mipsdspr1 --disable-mipsdspr2 --enable-libvidstab --enable-libzvbi --enable-avresample --disable-htmlpages --disable-podpages --enable-libutvideo --enable-libfdk-aac --enable-libx265 --enable-libiec61883 --enable-vaapi --enable-libdc1394 --disable-altivec --shlibdir=/usr/lib/x86_64-linux-gnu
libavutil 54. 20.100 / 54. 20.100
libavcodec 56. 26.100 / 56. 26.100
libavformat 56. 25.101 / 56. 25.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 11.102 / 5. 11.102
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Splitting the commandline.
Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
Reading option '-ss' ... matched as option 'ss' (set the start time offset) with argument '1400'.
Reading option '-i' ... matched as input file with argument 'https://s3-us-west-2.amazonaws.com/my-bucket/mymoviefile.mp4'.
Reading option '-qscale:v' ... matched as option 'qscale' (use fixed quality scale (VBR)) with argument '2'.
Reading option '-f' ... matched as option 'f' (force format) with argument 'image2'.
Reading option '-vframes' ... matched as option 'vframes' (set the number of video frames to output) with argument '1'.
Reading option '-filter:v' ... matched as option 'filter' (set stream filtergraph) with argument 'scale=192:108'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.
Reading option '/data/www/storage/test.jpg' ... matched as output file.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option y (overwrite output files) with argument 1.
Applying option loglevel (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input file https://s3-us-west-2.amazonaws.com/my-bucket/mymoviefile.mp4.
Applying option ss (set the start time offset) with argument 1400.
Successfully parsed a group of options.
Opening an input file: https://s3-us-west-2.amazonaws.com/my-bucket/mymoviefile.mp4.
[https @ 0x22e1e00] request: GET /my-bucket/mymoviefile.mp4 HTTP/1.1
User-Agent: Lavf/56.25.101
Accept: */*
Range: bytes=0-
Connection: close
Host: s3-us-west-2.amazonaws.com
Icy-MetaData: 1
[https @ 0x22e1e00] header='HTTP/1.1 206 Partial Content'
[https @ 0x22e1e00] http_code=206
[https @ 0x22e1e00] header='x-amz-id-2: 4J1pgHExIUA0GxIxSBmGJjrRqliHbsIjXeuGzVfTlaaoVXbyZI5FQNma8fGaifcovkXfxJev5yU='
[https @ 0x22e1e00] header='x-amz-request-id: 78B3BDBB0356EF40'
[https @ 0x22e1e00] header='Date: Wed, 16 Dec 2015 23:51:29 GMT'
[https @ 0x22e1e00] header='x-amz-meta-content-length: 2898'
[https @ 0x22e1e00] header='x-amz-meta-cb-modifiedtime: Tue, 15 Dec 2015 17:59:51 GMT'
[https @ 0x22e1e00] header='Last-Modified: Wed, 16 Dec 2015 23:44:59 GMT'
[https @ 0x22e1e00] header='ETag: "6341a8022630667a8070a83575e542e7-27"'
[https @ 0x22e1e00] header='Accept-Ranges: bytes'
[https @ 0x22e1e00] header='Content-Range: bytes 0-1776706044/1776706045'
[https @ 0x22e1e00] header='Content-Type: video/mp4'
[https @ 0x22e1e00] header='Content-Length: 1776706045'
[https @ 0x22e1e00] header='Server: AmazonS3'
[https @ 0x22e1e00] header='Connection: close'
[https @ 0x22e1e00] header=''
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x22e1740] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x22e1740] ISO: File Type Major Brand: mp42
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x22e1740] Before avformat_find_stream_info() pos: 1647960 bytes read:1652200 seeks:0
[h264 @ 0x22e92c0] no picture
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x22e1740] All info found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x22e1740] After avformat_find_stream_info() pos: 1862326 bytes read:1878504 seeks:0 frames:16
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'https://s3-us-west-2.amazonaws.com/my-bucket/mymoviefile.mp4':
Metadata:
major_brand : mp42
minor_version : 1
compatible_brands: isommp41avc1
creation_time : 2015-11-18 02:34:41
Duration: 00:48:17.70, start: 0.000000, bitrate: 4905 kb/s
Stream #0:0(und), 15, 1/2997: Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, left), 1920x1080 (1920x1088) [SAR 1:1 DAR 16:9], 1001/60000, 9994 kb/s, 29.97 fps, 29.97 tbr, 2997 tbn, 59.94 tbc (default)
Metadata:
creation_time : 2015-11-18 02:34:41
handler_name : ?Apple Video Media Handler
Stream #0:1(und), 1, 1/48000: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 192 kb/s (default)
Metadata:
creation_time : 2015-11-18 02:34:41
handler_name : ?Apple Sound Media Handler
Successfully opened the file.
Parsing a group of options: output file /data/www/storage/test.jpg.
Applying option qscale:v (use fixed quality scale (VBR)) with argument 2.
Applying option f (force format) with argument image2.
Applying option vframes (set the number of video frames to output) with argument 1.
Applying option filter:v (set stream filtergraph) with argument scale=192:108.
Successfully parsed a group of options.
Opening an output file: /data/www/storage/test.jpg.
Successfully opened the file.
detected 2 logical cores
[Parsed_scale_0 @ 0x22cd4c0] Setting 'w' to value '192'
[Parsed_scale_0 @ 0x22cd4c0] Setting 'h' to value '108'
[Parsed_scale_0 @ 0x22cd4c0] Setting 'flags' to value '0x4'
[Parsed_scale_0 @ 0x22cd4c0] w:192 h:108 flags:'0x4' interl:0
[graph 0 input from stream 0:0 @ 0x22ccfe0] Setting 'video_size' to value '1920x1080'
[graph 0 input from stream 0:0 @ 0x22ccfe0] Setting 'pix_fmt' to value '0'
[graph 0 input from stream 0:0 @ 0x22ccfe0] Setting 'time_base' to value '1/2997'
[graph 0 input from stream 0:0 @ 0x22ccfe0] Setting 'pixel_aspect' to value '1/1'
[graph 0 input from stream 0:0 @ 0x22ccfe0] Setting 'sws_param' to value 'flags=2'
[graph 0 input from stream 0:0 @ 0x22ccfe0] Setting 'frame_rate' to value '2997/100'
[graph 0 input from stream 0:0 @ 0x22ccfe0] w:1920 h:1080 pixfmt:yuv420p tb:1/2997 fr:2997/100 sar:1/1 sws_param:flags=2
[format @ 0x2798640] compat: called with args=[yuvj420p|yuvj422p|yuvj444p]
[format @ 0x2798640] Setting 'pix_fmts' to value 'yuvj420p|yuvj422p|yuvj444p'
[AVFilterGraph @ 0x22cda60] query_formats: 5 queried, 4 merged, 0 already done, 0 delayed
[Parsed_scale_0 @ 0x22cd4c0] picking yuvj420p out of 3 ref:yuv420p alpha:0
[swscaler @ 0x22c3c80] deprecated pixel format used, make sure you did set range correctly
[Parsed_scale_0 @ 0x22cd4c0] w:1920 h:1080 fmt:yuv420p sar:1/1 -> w:192 h:108 fmt:yuvj420p sar:1/1 flags:0x4
[mjpeg @ 0x2854e20] intra_quant_bias = 96 inter_quant_bias = 0
[mjpeg @ 0x28716c0] intra_quant_bias = 96 inter_quant_bias = 0
[mjpeg @ 0x2795320] intra_quant_bias = 96 inter_quant_bias = 0
Output #0, image2, to '/data/www/storage/test.jpg':
Metadata:
major_brand : mp42
minor_version : 1
compatible_brands: isommp41avc1
encoder : Lavf56.25.101
Stream #0:0(und), 0, 100/2997: Video: mjpeg, yuvj420p(pc, left), 192x108 [SAR 1:1 DAR 16:9], 100/2997, q=2-31, 200 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc (default)
Metadata:
creation_time : 2015-11-18 02:34:41
handler_name : ?Apple Video Media Handler
encoder : Lavc56.26.100 mjpeg
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native))
Press [q] to stop, [?] for help
[https @ 0x22e1e00] request: GET /my-bucket/mymoviefile.mp4 HTTP/1.1
User-Agent: Lavf/56.25.101
Accept: */*
Range: bytes=1781732960-
Connection: close
Host: s3-us-west-2.amazonaws.com
Icy-MetaData: 1
[https @ 0x22e1e00] header='HTTP/1.1 416 Requested Range Not Satisfiable'
[https @ 0x22e1e00] http_code=416
[https @ 0x22e1e00] HTTP error 416 Requested Range Not Satisfiable
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x22e1740] stream 0, offset 0x6a331660: partial file
https://s3-us-west-2.amazonaws.com/my-bucket/mymoviefile.mp4: Invalid data found when processing input
[output stream 0:0 @ 0x22d7500] EOF on sink link output stream 0:0:default.
No more output streams to write to, finishing.
frame= 0 fps=0.0 q=0.0 Lsize=N/A time=00:00:00.00 bitrate=N/A
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Input file #0 (https://s3-us-west-2.amazonaws.com/my-bucket/mymoviefile.mp4):
Input stream #0:0 (video): 0 packets read (0 bytes); 0 frames decoded;
Input stream #0:1 (audio): 0 packets read (0 bytes);
Total: 0 packets (0 bytes) demuxed
Output file #0 (/data/www/storage/test.jpg):
Output stream #0:0 (video): 0 frames encoded; 0 packets muxed (0 bytes);
Total: 0 packets (0 bytes) muxed
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)
0 frames successfully decoded, 0 decoding errors
[AVIOContext @ 0x27ab100] Statistics: 1878504 bytes read, 0 seeksFFprobe Result :
# /usr/bin/ffprobe -show_format -show_streams -i 'https://s3-us-west-2.amazonaws.com/my-bucket/mymoviefile.mp4'
ffprobe version 2.6.4 Copyright (c) 2007-2015 the FFmpeg developers
built with gcc 4.9.2 (Debian 4.9.2-10)
configuration: --prefix=/usr --extra-cflags='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security ' --extra-ldflags='-Wl,-z,relro' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-libvpx --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-librtmp --enable-avfilter --enable-libfreetype --enable-libvo-aacenc --disable-decoder=amrnb --enable-libvo-amrwbenc --enable-libaacplus --libdir=/usr/lib/x86_64-linux-gnu --disable-vda --enable-libbluray --enable-libcdio --enable-gnutls --enable-frei0r --enable-openssl --enable-libass --enable-libopus --enable-fontconfig --enable-libpulse --disable-mips32r2 --disable-mipsdspr1 --disable-mipsdspr2 --enable-libvidstab --enable-libzvbi --enable-avresample --disable-htmlpages --disable-podpages --enable-libutvideo --enable-libfdk-aac --enable-libx265 --enable-libiec61883 --enable-vaapi --enable-libdc1394 --disable-altivec --shlibdir=/usr/lib/x86_64-linux-gnu
libavutil 54. 20.100 / 54. 20.100
libavcodec 56. 26.100 / 56. 26.100
libavformat 56. 25.101 / 56. 25.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 11.102 / 5. 11.102
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'https://s3-us-west-2.amazonaws.com/my-bucket/mymoviefile.mp4':
Metadata:
major_brand : mp42
minor_version : 1
compatible_brands: isommp41avc1
creation_time : 2015-11-18 02:34:41
Duration: 00:48:17.70, start: 0.000000, bitrate: 4905 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv), 1920x1080 [SAR 1:1 DAR 16:9], 9994 kb/s, 29.97 fps, 29.97 tbr, 2997 tbn, 59.94 tbc (default)
Metadata:
creation_time : 2015-11-18 02:34:41
handler_name : ?Apple Video Media Handler
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 192 kb/s (default)
Metadata:
creation_time : 2015-11-18 02:34:41
handler_name : ?Apple Sound Media Handler
[STREAM]
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=1001/60000
codec_tag_string=avc1
codec_tag=0x31637661
width=1920
height=1080
has_b_frames=1
sample_aspect_ratio=1:1
display_aspect_ratio=16:9
pix_fmt=yuv420p
level=40
color_range=tv
color_space=unknown
color_transfer=unknown
color_primaries=unknown
chroma_location=left
timecode=N/A
refs=3
is_avc=1
nal_length_size=4
id=N/A
r_frame_rate=2997/100
avg_frame_rate=2997/100
time_base=1/2997
start_pts=0
start_time=0.000000
duration_ts=8684300
duration=2897.664331
bit_rate=9994429
max_bit_rate=N/A
bits_per_raw_sample=8
nb_frames=86843
nb_read_frames=N/A
nb_read_packets=N/A
DISPOSITION:default=1
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
TAG:creation_time=2015-11-18 02:34:41
TAG:language=und
TAG:handler_name=Apple Video Media Handler
[/STREAM]
[STREAM]
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.000000
duration_ts=139085965
duration=2897.624271
bit_rate=192002
max_bit_rate=N/A
bits_per_raw_sample=N/A
nb_frames=135828
nb_read_frames=N/A
nb_read_packets=N/A
DISPOSITION:default=1
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
TAG:creation_time=2015-11-18 02:34:41
TAG:language=und
TAG:handler_name=Apple Sound Media Handler
[/STREAM]
[FORMAT]
filename=https://s3-us-west-2.amazonaws.com/my-bucket/mymoviefile.mp4
nb_streams=2
nb_programs=0
format_name=mov,mp4,m4a,3gp,3g2,mj2
format_long_name=QuickTime / MOV
start_time=0.000000
duration=2897.695000
size=1776706045
bit_rate=4905156
probe_score=100
TAG:major_brand=mp42
TAG:minor_version=1
TAG:compatible_brands=isommp41avc1
TAG:creation_time=2015-11-18 02:34:41
[/FORMAT] -
FFMPEG android is processing slow
23 novembre 2015, par jpcI’m using https://github.com/WritingMinds/ffmpeg-android-java as my framework for FFMPEG
I’m trying to convert an image to a video using this command
ffmpeg -y -loop 1 -i input.jpg -strict -2 -vcodec mpeg4 -t 5 -pix_fmt yuv420p out.mp4
It took about 32 seconds to finish the process which is very slow for my requirements.
Is there a way to speed this up ? I’m thinking of something around 5 seconds, perhaps approximately equal to the specified length of the video
here’s the log btw
11-23 12:12:13.587 4228-4228/com.lo.and.dev W/com.lo.and.util: WARNING: linker: /data/data/com.lo.and.dev/files/ffmpeg has text relocations. This is wasting memory and prevents security hardening. Please fix.
11-23 12:12:13.607 4228-4228/com.lo.and.dev W/com.lo.and.util: ffmpeg version n2.4.2 Copyright (c) 2000-2014 the FFmpeg developers
11-23 12:12:13.607 4228-4228/com.lo.and.dev W/com.lo.and.util: built on Oct 7 2014 15:08:46 with gcc 4.8 (GCC)
11-23 12:12:13.607 4228-4228/com.lo.and.dev W/com.lo.and.util: configuration: --target-os=linux --cross-prefix=/home/sb/Source-Code/ffmpeg-android/toolchain-android/bin/arm-linux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime-cpudetect --sysroot=/home/sb/Source-Code/ffmpeg-android/toolchain-android/sysroot --enable-pic --enable-libx264 --enable-libass --enable-libfreetype --enable-libfribidi --enable-fontconfig --enable-pthreads --disable-debug --disable-ffserver --enable-version3 --enable-hardcoded-tables --disable-ffplay --disable-ffprobe --enable-gpl --enable-yasm --disable-doc --disable-shared --enable-static --pkg-config=/home/sb/Source-Code/ffmpeg-android/ffmpeg-pkg-config --prefix=/home/sb/Source-Code/ffmpeg-android/build/armeabi-v7a-neon --extra-cflags='-I/home/sb/Source-Code/ffmpeg-android/toolchain-android/include -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all -mfpu=neon' --extra-ldflags='-L/home/sb/Source-Code/ffmpeg-android/toolchain-android/lib -Wl,-z,relro -Wl,-z,now -pie' --extra-libs='-lpng -lexpat -lm' --extra-cxxflags=
11-23 12:12:13.607 4228-4228/com.lo.and.dev W/com.lo.and.util: libavutil 54. 7.100 / 54. 7.100
11-23 12:12:13.607 4228-4228/com.lo.and.dev W/com.lo.and.util: libavcodec 56. 1.100 / 56. 1.100
11-23 12:12:13.607 4228-4228/com.lo.and.dev W/com.lo.and.util: libavformat 56. 4.101 / 56. 4.101
11-23 12:12:13.607 4228-4228/com.lo.and.dev W/com.lo.and.util: libavdevice 56. 0.100 / 56. 0.100
11-23 12:12:13.607 4228-4228/com.lo.and.dev W/com.lo.and.util: libavfilter 5. 1.100 / 5. 1.100
11-23 12:12:13.617 4228-4228/com.lo.and.dev W/com.lo.and.util: libswscale 3. 0.100 / 3. 0.100
11-23 12:12:13.617 4228-4228/com.lo.and.dev W/com.lo.and.util: libswresample 1. 1.100 / 1. 1.100
11-23 12:12:13.617 4228-4228/com.lo.and.dev W/com.lo.and.util: libpostproc 53. 0.100 / 53. 0.100
11-23 12:12:13.707 4228-4228/com.lo.and.dev W/com.lo.and.util: Input #0, image2, from '/storage/emulated/0/DCIM/Camera/20151122_172809.jpg':
11-23 12:12:13.707 4228-4228/com.lo.and.dev W/com.lo.and.util: Duration: 00:00:00.04, start: 0.000000, bitrate: 95165 kb/s
11-23 12:12:13.717 4228-4228/com.lo.and.dev W/com.lo.and.util: Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 25 tbn, 25 tbc
11-23 12:12:13.727 4228-4228/com.lo.and.dev W/com.lo.and.util: [swscaler @ 0xb5d89000] deprecated pixel format used, make sure you did set range correctly
11-23 12:12:13.777 4228-4228/com.lo.and.dev W/com.lo.and.util: Output #0, mp4, to '/storage/emulated/0/DCIM/out.mp4':
11-23 12:12:13.777 4228-4228/com.lo.and.dev W/com.lo.and.util: Metadata:
11-23 12:12:13.777 4228-4228/com.lo.and.dev W/com.lo.and.util: encoder : Lavf56.4.101
11-23 12:12:13.777 4228-4228/com.lo.and.dev W/com.lo.and.util: Stream #0:0: Video: mpeg4 ( [0][0][0] / 0x0020), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 25 fps, 12800 tbn, 25 tbc
11-23 12:12:13.777 4228-4228/com.lo.and.dev W/com.lo.and.util: Metadata:
11-23 12:12:13.777 4228-4228/com.lo.and.dev W/com.lo.and.util: encoder : Lavc56.1.100 mpeg4
11-23 12:12:13.777 4228-4228/com.lo.and.dev W/com.lo.and.util: Stream mapping:
11-23 12:12:13.777 4228-4228/com.lo.and.dev W/com.lo.and.util: Stream #0:0 -> #0:0 (mjpeg (native) -> mpeg4 (native))
11-23 12:12:13.777 4228-4228/com.lo.and.dev W/com.lo.and.util: Press [q] to stop, [?] for help
11-23 12:12:14.707 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 3 fps=0.0 q=2.0 size= 343kB time=00:00:00.12 bitrate=23400.5kbits/s
11-23 12:12:15.247 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 5 fps=4.2 q=4.9 size= 345kB time=00:00:00.20 bitrate=14125.9kbits/s
11-23 12:12:15.737 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 7 fps=4.0 q=10.2 size= 347kB time=00:00:00.28 bitrate=10149.8kbits/s
11-23 12:12:16.467 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 10 fps=4.1 q=18.9 size= 350kB time=00:00:00.40 bitrate=7167.7kbits/s
11-23 12:12:17.037 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 12 fps=4.0 q=24.8 size= 352kB time=00:00:00.48 bitrate=6007.9kbits/s
11-23 12:12:17.567 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 14 fps=3.9 q=27.8 size= 403kB time=00:00:00.56 bitrate=5893.7kbits/s
11-23 12:12:18.337 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 17 fps=4.0 q=31.0 size= 406kB time=00:00:00.68 bitrate=4891.5kbits/s
11-23 12:12:18.847 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 19 fps=3.9 q=31.0 size= 408kB time=00:00:00.76 bitrate=4398.6kbits/s
11-23 12:12:19.607 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 22 fps=3.9 q=31.0 size= 411kB time=00:00:00.88 bitrate=3827.4kbits/s
11-23 12:12:20.107 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 24 fps=3.9 q=31.0 size= 413kB time=00:00:00.96 bitrate=3525.9kbits/s
11-23 12:12:20.637 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 26 fps=3.9 q=31.0 size= 460kB time=00:00:01.04 bitrate=3624.3kbits/s
11-23 12:12:21.157 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 28 fps=3.9 q=31.0 size= 462kB time=00:00:01.12 bitrate=3381.1kbits/s
11-23 12:12:21.667 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 30 fps=3.9 q=31.0 size= 464kB time=00:00:01.20 bitrate=3169.7kbits/s
11-23 12:12:22.167 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 32 fps=3.9 q=31.0 size= 466kB time=00:00:01.28 bitrate=2984.6kbits/s
11-23 12:12:22.897 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 35 fps=3.9 q=31.0 size= 469kB time=00:00:01.40 bitrate=2746.8kbits/s
11-23 12:12:23.657 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 38 fps=3.9 q=31.0 size= 517kB time=00:00:01.52 bitrate=2788.3kbits/s
11-23 12:12:24.387 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 41 fps=4.0 q=31.0 size= 521kB time=00:00:01.64 bitrate=2600.1kbits/s
11-23 12:12:24.887 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 43 fps=3.9 q=31.0 size= 523kB time=00:00:01.72 bitrate=2488.9kbits/s
11-23 12:12:25.417 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 45 fps=3.9 q=31.0 size= 525kB time=00:00:01.80 bitrate=2387.6kbits/s
11-23 12:12:25.967 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 47 fps=3.9 q=31.0 size= 527kB time=00:00:01.88 bitrate=2294.9kbits/s
11-23 12:12:26.477 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 49 fps=3.9 q=24.8 size= 572kB time=00:00:01.96 bitrate=2390.0kbits/s
11-23 12:12:27.297 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 52 fps=3.9 q=31.0 size= 577kB time=00:00:02.08 bitrate=2271.5kbits/s
11-23 12:12:27.987 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 55 fps=3.9 q=31.0 size= 580kB time=00:00:02.20 bitrate=2159.1kbits/s
11-23 12:12:28.737 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 58 fps=3.9 q=31.0 size= 583kB time=00:00:02.32 bitrate=2058.2kbits/s
11-23 12:12:29.247 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 60 fps=3.9 q=31.0 size= 585kB time=00:00:02.40 bitrate=1996.6kbits/s
11-23 12:12:30.017 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 63 fps=3.9 q=31.0 size= 633kB time=00:00:02.52 bitrate=2057.7kbits/s
11-23 12:12:30.557 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 65 fps=3.9 q=31.0 size= 635kB time=00:00:02.60 bitrate=2000.8kbits/s
11-23 12:12:31.057 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 67 fps=3.9 q=31.0 size= 637kB time=00:00:02.68 bitrate=1947.4kbits/s
11-23 12:12:31.627 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 69 fps=3.9 q=31.0 size= 639kB time=00:00:02.76 bitrate=1897.0kbits/s
11-23 12:12:32.167 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 71 fps=3.9 q=31.0 size= 641kB time=00:00:02.84 bitrate=1849.5kbits/s
11-23 12:12:32.927 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 74 fps=3.9 q=31.0 size= 689kB time=00:00:02.96 bitrate=1907.2kbits/s
11-23 12:12:33.407 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 76 fps=3.9 q=31.0 size= 691kB time=00:00:03.04 bitrate=1862.8kbits/s
11-23 12:12:34.157 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 79 fps=3.9 q=31.0 size= 694kB time=00:00:03.16 bitrate=1800.0kbits/s
11-23 12:12:34.657 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 81 fps=3.9 q=31.0 size= 696kB time=00:00:03.24 bitrate=1760.7kbits/s
11-23 12:12:35.217 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 83 fps=3.9 q=31.0 size= 698kB time=00:00:03.32 bitrate=1723.3kbits/s
11-23 12:12:35.777 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 85 fps=3.9 q=24.8 size= 744kB time=00:00:03.40 bitrate=1791.6kbits/s
11-23 12:12:36.297 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 87 fps=3.9 q=31.0 size= 747kB time=00:00:03.48 bitrate=1759.6kbits/s
11-23 12:12:36.827 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 89 fps=3.9 q=31.0 size= 750kB time=00:00:03.56 bitrate=1724.8kbits/s
11-23 12:12:37.547 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 92 fps=3.9 q=31.0 size= 753kB time=00:00:03.68 bitrate=1675.4kbits/s
11-23 12:12:38.297 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 95 fps=3.9 q=31.0 size= 756kB time=00:00:03.80 bitrate=1629.1kbits/s
11-23 12:12:38.797 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 97 fps=3.9 q=24.8 size= 801kB time=00:00:03.88 bitrate=1690.8kbits/s
11-23 12:12:39.547 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 100 fps=3.9 q=31.0 size= 806kB time=00:00:04.00 bitrate=1650.2kbits/s
11-23 12:12:40.047 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 102 fps=3.9 q=31.0 size= 808kB time=00:00:04.08 bitrate=1621.9kbits/s
11-23 12:12:40.807 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 105 fps=3.9 q=31.0 size= 811kB time=00:00:04.20 bitrate=1581.6kbits/s
11-23 12:12:41.267 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 107 fps=3.9 q=31.0 size= 813kB time=00:00:04.28 bitrate=1555.9kbits/s
11-23 12:12:42.057 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 110 fps=3.9 q=31.0 size= 861kB time=00:00:04.40 bitrate=1602.8kbits/s
11-23 12:12:42.557 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 112 fps=3.9 q=31.0 size= 863kB time=00:00:04.48 bitrate=1578.1kbits/s
11-23 12:12:43.307 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 115 fps=3.9 q=31.0 size= 866kB time=00:00:04.60 bitrate=1542.4kbits/s
11-23 12:12:43.817 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 117 fps=3.9 q=31.0 size= 868kB time=00:00:04.68 bitrate=1519.6kbits/s
11-23 12:12:44.517 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 120 fps=3.9 q=31.0 size= 871kB time=00:00:04.80 bitrate=1486.8kbits/s
11-23 12:12:45.277 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 123 fps=3.9 q=31.0 size= 919kB time=00:00:04.92 bitrate=1530.6kbits/s
11-23 12:12:45.987 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 125 fps=3.9 q=31.0 size= 921kB time=00:00:05.00 bitrate=1509.4kbits/s
11-23 12:12:45.987 4228-4228/com.lo.and.dev W/com.lo.and.util: frame= 125 fps=3.9 q=31.0 Lsize= 923kB time=00:00:05.00 bitrate=1511.6kbits/s
11-23 12:12:45.987 4228-4228/com.lo.and.dev W/com.lo.and.util: video:921kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.148301% -
Issues with processing media on windows Azure
23 septembre 2015, par Ahmed MujtabaI have a website built on ASP.NET web forms that works as a media portal for users to upload videos. I’m using ffmpeg encoders to produce video contents to be streamed in the browser. I’m using the web deploy method to publish the site on the Azure server. The website get’s deployed properly however I get following issues in the live site.
-
Video never get’s encoded and published. I get some sort of error.
-
Video get’s published but the process of uploading and encoding the video is way too slow on the web server.
My project solution contains upload.ashx that handles the upload requests and makes the call to encode.ashx which is responsible for the encoding and publishing of the videos. I tried to remotely debug the site but the debugger never get’s to encode.ashx.
I was wondering if these issues can be resolved by having the website deployed with a VM ?
Script that uploads the video file :
var filesuploaded = 0;
var faileduploaded = 0;
$(function () {
var uploader = new plupload.Uploader({
runtimes: 'gears,html5,flash,silverlight,browserplus',
browse_button: '<%= pickfiles.ClientID %>',
container: 'container',
max_file_size: '<%= MaxMediaSize %>mb',
url: '<%=Config.GetUrl() %>videos/upload/upload.ashx',
flash_swf_url: '<%=Config.GetUrl() %>plupload/js/plupload.flash.swf',
silverlight_xap_url: '<%=Config.GetUrl() %>plupload/js/plupload.silverlight.xap',
chunk_size: '4mb',
<%= UniqueNames %>
filters: [
{ title: '<%= AllowedFormatsDisplay %>', extensions: '<%= AllowedFormats %>'}],
headers: { UName: '<%=UserName %>', MTP: '<%= MediaType %>' }
});
//uploader.bind('Init', function (up, params) {
// $('#filelist').html("<div>Current runtime: " + params.runtime + "</div>");
//});
uploader.init();
$('#uploadfiles').click(function (e) {
uploader.start();
e.preventDefault();
$("#uploadfiles").hide();
$("#<%= embd.ClientID %>").hide();
});
uploader.bind('FilesAdded', function (up, files) {
$("#uploadfiles").show();
$("#<%= msg.ClientID %>").html("");
var count=0;
$.each(files, function (i, file) {
$('#filelist').append(
'<div class="item_pad_4 bx_br_bt">' + (count + 1) + ': ' + file.name + ' (' + plupload.formatSize(file.size) + ') <b></b></div>' );
count++;
});
var maxupload = <%= MaxVideoUploads %>;
if(count > maxupload)
{
$.each(files, function(i, file) {
uploader.removeFile(file);
});
$('#filelist').html("");
$("#uploadfiles").hide();
Display_Message("#<%= msg.ClientID %>", "Can't upload more than " + maxupload + " records at once!", 1, 1);
return false;
}
else {
$("#tfiles").html(count);
$("#uploadfiles").removeClass("disabled");
$("#<%= pickfiles.ClientID %>").hide();
}
up.refresh(); // Reposition Flash/Silverlight
});
uploader.bind('UploadProgress', function (up, file) {
$('#' + file.id + " b").html(file.percent + "%");
});
uploader.bind('Error', function (up, err) {
$('#filelist').append("<div>Error: " + err.code +
", Message: " + err.message +
(err.file ? ", File: " + err.file.name : "") +
"</div>"
);
up.refresh(); // Reposition Flash/Silverlight
});
var failedstatus = 0;
uploader.bind('FileUploaded', function (up, file, info) {
// encode started
if (info.response != "failed" && info.response != "") {
EncodeVD(file.id, info.response, file.size);
Display_Message('#' + file.id, "Please wait for final processing", 0, 1);
if (failedstatus == 0)
Redirect(info.response);
filesuploaded++;
}
else {
Display_Message('#' + file.id, "Response is: " + info.response, 0, 1);
}
});
});
var redcnt = 0;
function Redirect(filename) {
var IntervalID = setInterval(function () {
redcnt++;
if (redcnt > 2) {
clearInterval(IntervalID);
var tfiles = $("#tfiles").html();
if(tfiles == faileduploaded) { // break further processing all videos failed to upload
}
else if (filesuploaded >= tfiles) {
document.location = "<%=ConfirmPageUrl %>?fn=" + filename + "&gid=<%=GalleryID %>&uvids=" + $("#tfiles").html() + "&mpid=" + $("#maxpid").html().trim() + "<%=GroupParam %>";
}
}
}, 2000);
}
function EncodeVD(mid, mfile, msize) {
var params = '<%= EncodingParams %>&fn=' + mfile;
$.ajax({
type: 'GET',
url: '<%= Encoding_Handler_Path %>',
data: params,
async: true,
success: function (msg) {
if (msg == "Success" || msg == "") {
$('#' + mid).html('<strong>Uploading Completed Successfully - Wait for Processing.');
}
else {
failedstatus = 1;
faileduploaded++;
Display_Message('#' + mid, "Response is: " + msg, 0, 1);
}
}
});
}
</strong>Server side code for processing the file upload :
private int MediaType = 0; // 0 : video, 1: audio
public void ProcessRequest (HttpContext context) {
try
{
context.Response.ContentType = "text/plain";
context.Response.Write(ProcessMedia(context));
}
catch (Exception ex)
{
context.Response.Write("error|" + ex.Message);
}
}
public string ProcessMedia(HttpContext context)
{
if (context.Request.Files.Count > 0)
{
int chunk = context.Request["chunk"] != null ? int.Parse(context.Request["chunk"]) : 0;
string fileName = context.Request["name"] != null ? context.Request["name"] : string.Empty;
//string _fileName = fileName.Remove(fileName.LastIndexOf(".")) + "-" + Guid.NewGuid().ToString().Substring(0, 6) + "" + fileName.Remove(0, fileName.LastIndexOf("."));
HttpPostedFile fileUpload = context.Request.Files[0];
string upath = "";
if (context.Request.Headers["UName"] != null)
upath = context.Request.Headers["UName"].ToString();
//if (CloudSettings.EnableCloudStorage && upath != "")
// _fileName = upath.Substring(0, 3) + "-" + _fileName; // avoid duplication in cloud storage
if (context.Request.Headers["MTP"] != null)
MediaType = Convert.ToInt32(context.Request.Headers["MTP"]);
//string extensions = "";
//if (MediaType == 0)
// extensions = Site_Settings.Video_Allowed_Formats;
//else
// extensions = Site_Settings.Audio_Allowed_Formats;
//bool sts = UtilityBLL.Check_File_Extension(extensions, fileName.ToLower());
//if (sts == false)
//{
// return "Invalid format, please upload proper video!"; // Invalid video format, please upload proper video
//}
int allowable_size_mb = 0;
if (MediaType == 0)
{
allowable_size_mb = Site_Settings.Video_Max_Size;
}
else
{
allowable_size_mb = Site_Settings.Audio_Max_Size;
}
int UploadSize = allowable_size_mb * 1000000;
if (fileUpload.ContentLength > UploadSize)
{
return "Video Limit Exceeds";
}
string uploadPath = "";
// check whether audio / mp3 encoding enabled
if (this.MediaType == 1)
{
// audio encoding
if (fileName.EndsWith(".mp3"))
{
// upload mp3 directly in mp3 path instead of default path
if (upath == "")
uploadPath = UrlConfig.MP3_Path(); // source video path
else
uploadPath = UrlConfig.MP3_Path(upath); // source video path
}
else
{
// default path
if (upath == "")
uploadPath = UrlConfig.Source_Video_Path(); // source video path
else
uploadPath = UrlConfig.Source_Video_Path(upath); // source video path
}
}
else
{//azure
// default path
if (upath == "")
uploadPath = UrlConfig.Source_Video_Path(); // source video path
else
uploadPath = UrlConfig.Source_Video_Path(upath); // source video path
}
FileStream fs;
using (fs = new FileStream(Path.Combine(uploadPath, fileName), chunk == 0 ? FileMode.Create : FileMode.Append))
{
byte[] buffer = new byte[fileUpload.InputStream.Length];
fileUpload.InputStream.Read(buffer, 0, buffer.Length);
fs.Write(buffer, 0, buffer.Length);
}
return fileName; // "Success";
}
else
{
return "failed";
}
return "";
}
public bool IsReusable {
get {
return false;
}
}code in encode.aspx responsible for encoding the video :
private string EncodeMedia(HttpContext context)
{
string sourcepath = "";
string publishedpath = "";
string mp3path = "";
string thumbpath = "";
if (this.UserName != "")
{//azure
sourcepath = UrlConfig.Source_Video_Path(this.UserName);
publishedpath = UrlConfig.Published_Video_Path(this.UserName);
mp3path = UrlConfig.MP3_Path(this.UserName);
thumbpath = UrlConfig.Thumbs_Path(this.UserName);
}
else
{
sourcepath = UrlConfig.Source_Video_Path();
publishedpath = UrlConfig.Published_Video_Path();
mp3path = UrlConfig.MP3_Path();
thumbpath = UrlConfig.Thumbs_Path();
}
if (this.FileName.EndsWith(".mp3") && this.MediaType == 1)
{
// mp3 and audio format
if (!File.Exists(mp3path + "/" + this.FileName))
{
return "Audio file not found!";
}
}
else
{
// rest normal video and audio encoding
if (!File.Exists(sourcepath + "/" + this.FileName))
{
return "Source file not found!";
}
}
if (CloudSettings.EnableCloudStorage && this.UserName != "")
this.FileName = this.UserName.Substring(0, 3) + "-" + this.FileName; // avoid duplication in cloud storage
//double f_contentlength = 0;
//if (Site_Settings.Feature_Packages == 1)
//{
// if (Config.GetMembershipAccountUpgradeType() != 1)
// {
// // Check whether user have enough space to upload content
// // Restriction only for normal or premium users
// f_contentlength = (double)fileUpload.ContentLength / 1000000;
// string media_field_name = "space_video";
// if (MediaType == 1)
// media_field_name = "space_audio";
// if (!User_PackagesBLL.Check_User_Space_Status(upath, media_field_name, f_contentlength) && !isAdmin)
// {
// // insufficient credits to upload content
// return "Insufficient credits to upload media file"; // Response.Redirect(Config.GetUrl("myaccount/packages.aspx?status=" + media_field_name), true);
// }
// }
//}
this.backgroundpublishing = true; // should be true on direct encoding
// Video Processing
string flv_filename = "";
string original_filename = "";
string thumb_filename = "";
string duration = "";
int duration_sec = 0;
// set video actions : 1 -> on, 0 -> off
int isenabled = 1;
int ispublished = 1;
int isreviewed = 1;
int isresponse = 0;
if (Response_VideoID > 0)
isresponse = 1;
string flv_url = "none";
string thumb_url = "none";
string org_url = "none";
string _embed = "";
string errorcode = "0";
VideoInfo info = null;
if (Site_Settings.Content_Approval == 0)
isreviewed = 0;
// check whether audio / mp3 encoding enabled
if (this.FileName.EndsWith(".mp3") && this.MediaType==1)
{
// audio encoding
// mp3 file already
// so no encoding happens
MediaHandler _minfo = new MediaHandler();
_minfo.FFMPEGPath = Encoding_Settings.FFMPEGPATH;
_minfo.FileName = FileName;
_minfo.InputPath = mp3path;
info = _minfo.Get_Info();
flv_filename = FileName;
original_filename = FileName;
duration = info.Duration;
duration_sec = info.Duration_Sec;
isenabled = 1; // enabled
}
else if (this.directpublishing)
{
// publish video
ArrayList itags = new ArrayList();
MHPEncoder encoder = new MHPEncoder();
//if (this.FileName.EndsWith(".mpeg") || this.FileName.EndsWith(".mpg")) // use mpg compatible ffmpeg encoder
// encoder.FfmpegPath = HttpContext.Current.Server.MapPath(HttpContext.Current.Request.ApplicationPath) + "\\ffmpeg\\ffmpegbk\\ffmpeg.exe";
//encoder.ThumbFfmpegPath = Encoding_Settings.FFMPEGPATH; // use normal ffmpeg encoder for thumbs processing
//azure
encoder.FfmpegPath = Encoding_Settings.FFMPEGPATH; // use normal ffmpeg encoder
encoder.FlvToolPath = Encoding_Settings.FLVTOOLPATH; // set meta information for flv videos
encoder.Mp4BoxPath = Encoding_Settings.MP4BoxPath; // set meta information for mp4 videos
encoder.SourcePath = sourcepath;
encoder.SourceFileName = this.FileName;
// No cloud storage on direct encoding
//if (CloudSettings.EnableCloudStorage)
// encoder.EnableCloudStorage = true;
if (MediaType == 1)
{
// audio encoding
itags.Add("14");
encoder.iTags = itags;
encoder.GrabThumbs = false;
encoder.PublishedPath = mp3path;
//_vprocess.OutputPath = this.MP3Path;
//_vprocess.isAudio = true;
}
else
{
// video encoding
itags.Add(EncoderSettings.DefaultITagValue.ToString()); // 5 for 360p mp4 encoding
//itags.Add(7); // this will call 7 case settings to publish next video ending with _7.mp4 instead of _5.mp4
// so there will be 2 videos with different resoultions published at the end of the process?
// yesmake sure use proper settings first test it directly via command.
//okay i got it. But i'm gonna have to use a different media players to incroporate those settings
// once published you can load different videos for different user by checking _7.mp4 (end) va
//okay got it.
//azure
encoder.PublishedPath = publishedpath;
encoder.iTags = itags;
encoder.ThumbsDirectory = thumbpath;
encoder.TotalThumbs = 15;
//_vprocess.ThumbPath = this.ThumbPath;
//_vprocess.OutputPath = this.FLVPath;
//if (Config.isPostWaterMark())
//{
// // script for posting watermark on video
// _vprocess.WaterMarkPath = Server.MapPath(Request.ApplicationPath) + "\\contents\\watermark";
// _vprocess.WaterMarkImage = "watermark.gif";
//}
}
int deleteoption = Site_Settings.Video_Delete_Original;
if (deleteoption == 1)
{
encoder.DeleteSource = true;
}
// background processing
if (this.backgroundpublishing && this.MediaType==0)
{
encoder.BackgroundProcessing = true;
// get information from source video in order to store it in database
MediaHandler _minfo = new MediaHandler();
//if (this.FileName.EndsWith(".mpeg") || this.FileName.EndsWith(".mpg")) // use mpg compatible ffmpeg encoder
// encoder.FfmpegPath = HttpContext.Current.Server.MapPath(HttpContext.Current.Request.ApplicationPath) + "\\ffmpeg\\ffmpegbk\\ffmpeg.exe";
//else
_minfo.FFMPEGPath = Encoding_Settings.FFMPEGPATH;
_minfo.FileName = FileName;
_minfo.InputPath = sourcepath;
info = _minfo.Get_Info();
}
// encode video processing
Video_Information vinfo = encoder.Process();
if (vinfo.ErrorCode > 0)
{
errorcode = vinfo.ErrorCode.ToString();
ErrorLgBLL.Add_Log("Encoding Failed Log", "", "encoding error: " + vinfo.ErrorCode.ToString() + "<br />Description: " + vinfo.ErrorDescription.ToString());
//return vinfo.ErrorDescription;
}
// Double check validation
// if published video exist
// if thumb exist
// then proceed further
if (MediaType == 0)
{
if (!File.Exists(encoder.PublishedPath + "/" + vinfo.FLVVideoName))
{
return "Video failed to published properly.";
}
if (!File.Exists(encoder.ThumbsDirectory + "/" + vinfo.ThumbFileName))
{
return "Thumbs failed to grab from video properly.";
}
}
else
{
if (vinfo.FLVVideoName == "")
{
vinfo.FLVVideoName = this.FileName.Remove(this.FileName.LastIndexOf(".")) + "_14.mp3"; // mp3 file path name
}
if (!File.Exists(encoder.PublishedPath + "/" + vinfo.FLVVideoName))
{
return "Audio failed to published properly.";
}
}
// Now thumbs and video published, procceed for data processing
// get information from vinfo object
if (this.backgroundpublishing && this.MediaType == 0)
{
string OutputFileName = this.FileName.Remove(this.FileName.LastIndexOf("."));
flv_filename = OutputFileName + "_" + EncoderSettings.DefaultITagValue + "." + EncoderSettings.Return_Output_Extension(EncoderSettings.DefaultITagValue);
original_filename = vinfo.OriginalVideoName;
thumb_filename = OutputFileName + "_008.jpg"; // info.ThumbFileName;
duration = info.Duration;
duration_sec = info.Duration_Sec;
}
else
{
flv_filename = vinfo.FLVVideoName;
original_filename = vinfo.OriginalVideoName;
thumb_filename = vinfo.ThumbFileName;
duration = vinfo.Duration;
duration_sec = vinfo.Duration_Sec;
isenabled = vinfo.isEnabled;
}
// No cloud storage on direct encoding.
// Note cloude storage only works if background processing is disabled
// Or works in cased of sheduled processing
if (CloudSettings.EnableCloudStorage && errorcode == "0")
{
flv_url = "amazon";
org_url = "https://s3.amazonaws.com/" + CloudSettings.OriginalVideoBucketName + "/" + this.FileName;
thumb_url = "https://s3.amazonaws.com/" + CloudSettings.ThumbsBucketName + "/" + thumb_filename;
}
}
else
{
// set publishing status off.
ispublished = 0;
original_filename = this.FileName;
}
// Store video information in database
string ipaddress = context.Request.ServerVariables["REMOTE_ADDR"].ToString();
// Store media information in database
Video_Struct vd = new Video_Struct();
vd.CategoryID = 0; // store categoryname or term instead of category id
vd.Categories = Categories;
vd.UserName = UserName;
vd.Title = "";
vd.Description = "";
vd.Tags = Tags;
vd.Duration = duration;
vd.Duration_Sec = duration_sec;
vd.OriginalVideoFileName = original_filename;
vd.VideoFileName = flv_filename;
vd.ThumbFileName = thumb_filename;
vd.isPrivate = Privacy;
vd.AuthKey = PAuth;
vd.isEnabled = isenabled;
vd.Response_VideoID = Response_VideoID; // video responses
vd.isResponse = isresponse;
vd.isPublished = ispublished;
vd.isReviewed = isreviewed;
vd.FLV_Url = flv_url;
vd.Thumb_Url = thumb_url;
vd.Org_Url = org_url;
vd.Embed_Script = _embed;
vd.isExternal = 0; // website own video, 1: embed video
vd.IPAddress = ipaddress;
vd.Type = MediaType;
vd.YoutubeID = "";
vd.isTagsreViewed = 1;
vd.Mode = 0; // filter videos based on website sections
//vd.ContentLength = f_contentlength;
vd.GalleryID = GID;
vd.ErrorCode = Convert.ToInt32(errorcode);
long videoid = VideoBLL.Process_Info(vd, false);
// Process tags
if (Tags != "")
{
int tag_type = 0; // represent videos
if (MediaType == 1)
tag_type = 4; // represent audio file
TagsBLL.Process_Tags(Tags, tag_type, 0);
}
if (Response_VideoID > 0)
{
VideoBLL.Update_Responses(Response_VideoID);
}
return "Success";
} -