
Recherche avancée
Autres articles (74)
-
Contribute to documentation
13 avril 2011Documentation is vital to the development of improved technical capabilities.
MediaSPIP welcomes documentation by users as well as developers - including : critique of existing features and functions articles contributed by developers, administrators, content producers and editors screenshots to illustrate the above translations of existing documentation into other languages
To contribute, register to the project users’ mailing (...) -
Submit bugs and patches
13 avril 2011Unfortunately a software is never perfect.
If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
You may also (...) -
Selection of projects using MediaSPIP
2 mai 2011, parThe examples below are representative elements of MediaSPIP specific uses for specific projects.
MediaSPIP farm @ Infini
The non profit organizationInfini develops hospitality activities, internet access point, training, realizing innovative projects in the field of information and communication technologies and Communication, and hosting of websites. It plays a unique and prominent role in the Brest (France) area, at the national level, among the half-dozen such association. Its members (...)
Sur d’autres sites (6619)
-
how to download portion of video which was uploaded into AWS s3 bucket, though Nodejs SDKs
22 février 2024, par rama rangeswara reddyI have uploaded a 1GB .mp4 file to an AWS S3 bucket. Using the AWS-SDK provided by the npm package, I am able to download the entire video. However, I have a specific requirement to generate a thumbnail at the 6-second mark of the video. Currently, I download the entire 1GB video to my local machine and then generate the thumbnail at the desired duration.


To optimize server resources and reduce disk load, I plan to download only the first 10 seconds of the video, which should be approximately 10MB or less in size. By doing so, I can significantly reduce download time and server load while still fulfilling my requirement of generating the thumbnail at the 6-second mark. Therefore, instead of downloading the entire 1GB video, I aim to download only the 10MB segment corresponding to the first 10 seconds of the video.


I am using nodejs, expressJS, as backed Technologies.


`


`async function downloadS3FileToLocalDirAndReturnPath(videoKey) {
 return new Promise(async (resolve, reject) => {
 try {
 AWS.config.update({
 accessKeyId: config.AWS.KEYS.accessKeyId,
 secretAccessKey: config.AWS.KEYS.secretAccessKey,
 region: config.AWS.KEYS.region,
 httpOptions: config.AWS.KEYS.httpOptions
 });
 const s3 = new AWS.S3();

 // Specify the local file path where you want to save the downloaded video
 const localFilePath = `${os.tmpdir()}/${Date.now()}_sre.mp4`;

 // Configure the parameters for the S3 getObject operation
 const params = {
 Bucket: config.AWS.S3_BUCKET,
 Key: videoKey
 };

 const result = await s3.getObject(params).promise();
 const fileContent = result.Body;
 fs.writeFileSync(localFilePath, fileContent);
 resolve(localFilePath);
 } catch (error) {
 reject(error);
 }
 });
}`



this code was working fine to download the whole video , but i need to download only first 10 seconds duration


S3 : How to do a partial read / seek without downloading the complete file ?


I tried this ,before posting this question with above post, video was downloading , it was not playing , by throwing this error , the file contains no playable streams


async function generateThumbnails(videoKey) {

const s3 = new AWS.S3();

const params = {
 Bucket: KEYS.bucket,
 Key: videoKey, // Specify the key of the video file in S3
 Range: `bytes=0-${1024 * 800}`, // Specify the range of bytes you want to retrieve
};

const file = fs.createWriteStream(`/tmp/${Date.now()}_rama.mp4`);

const s3Stream = s3.getObject(params).createReadStream();

s3Stream.pipe(file);

s3Stream.on("error", (error) => {
 console.log("Error Occured while File downloading!! ");
});

s3Stream.on("finish", () => {
 console.log("File downloaded Successfully ");
});



}


-
How to download .m3u8 in once time
11 octobre 2024, par Nabi K.A.Z.I have a
.m3u8
file on remote host, with contain fixed numbers of chunk.ts
file name, and not stream :


#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:11
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:9.736,
media_0.ts
#EXTINF:9.96,
media_1.ts
#EXTINF:10.0,
media_2.ts
#EXTINF:10.0,
media_3.ts
#EXTINF:10.0,
media_4.ts
#EXTINF:10.2,
media_5.ts
#EXTINF:10.0,




When I use this command :



# ffmpeg -i "http://example.com/chunklist.m3u8" file.mp4

frame= 582 fps=9.4 q=28.0 size= 1536kB time=00:00:23.21 bitrate= 542.1kbits/s dup=2 drop=4 speed=0.375x




It works. But It get frame by frame video and very long time needed. (It takes time almost to playback the video.)



But since the path of all the
.ts
files are known. (http://example.com/media_0.ts, http://example.com/media_1.ts, ...) There must be a way to get and merge them all at the same time.


But How in
ffmpeg
directly ?!


EDIT (try a solution) :



For one solution, I know how can concatenation files with ffmpeg.



ffmpeg -i "concat:0.ts|1.ts|2.ts|3.ts|4.ts|5.ts" -c copy output.mp4




This ffmpeg command was great, and works in less 1 sec time !



So try to download all
.ts
files with CURL with this command :


curl \
http://example.com/media_0.ts -o 0.ts \
http://example.com/media_1.ts -o 1.ts \
http://example.com/media_2.ts -o 2.ts \
http://example.com/media_3.ts -o 3.ts \
http://example.com/media_4.ts -o 4.ts \
http://example.com/media_5.ts -o 5.ts




But you can see result :



% Total % Received % Xferd Average Speed Time Time Time Current
 Dload Upload Total Spent Left Speed
100 687k 100 687k 0 0 75108 0 0:00:09 0:00:09 --:--:-- 74111
100 652k 100 652k 0 0 59404 0 0:00:11 0:00:11 --:--:-- 53400
100 673k 100 673k 0 0 48675 0 0:00:14 0:00:14 --:--:-- 55781
100 657k 100 657k 0 0 63573 0 0:00:10 0:00:10 --:--:-- 62494
100 671k 100 671k 0 0 39019 0 0:00:17 0:00:17 --:--:-- 40863
100 692k 100 692k 0 0 63480 0 0:00:11 0:00:11 --:--:-- 80049




See, total download time was 72 sec, while the total duration of all parts is 59 sec ! that this time is very long !



So sorry, download all parts and then concat that, was not good solution.



EDIT 2



I try for another
.m3u8
file on the another server with difference URL :


Download and concat together :



ffmpeg -i "concat:\
http://184.72.239.149/vod/smil:BigBuckBunny.smil/media_w442897525_b560000_0.ts|\
http://184.72.239.149/vod/smil:BigBuckBunny.smil/media_w442897525_b560000_1.ts|\
http://184.72.239.149/vod/smil:BigBuckBunny.smil/media_w442897525_b560000_2.ts|\
http://184.72.239.149/vod/smil:BigBuckBunny.smil/media_w442897525_b560000_3.ts|\
http://184.72.239.149/vod/smil:BigBuckBunny.smil/media_w442897525_b560000_4.ts|\
http://184.72.239.149/vod/smil:BigBuckBunny.smil/media_w442897525_b560000_5.ts\
" -c copy -y output.ts




Another command with
input.txt
URLs file.


ffmpeg -f "concat" -i "input.txt" -c copy -y output.ts




input.txt file :



file 'http://184.72.239.149/vod/smil:BigBuckBunny.smil/media_w442897525_b560000_0.ts'
file 'http://184.72.239.149/vod/smil:BigBuckBunny.smil/media_w442897525_b560000_1.ts'
file 'http://184.72.239.149/vod/smil:BigBuckBunny.smil/media_w442897525_b560000_2.ts'
file 'http://184.72.239.149/vod/smil:BigBuckBunny.smil/media_w442897525_b560000_3.ts'
file 'http://184.72.239.149/vod/smil:BigBuckBunny.smil/media_w442897525_b560000_4.ts'
file 'http://184.72.239.149/vod/smil:BigBuckBunny.smil/media_w442897525_b560000_5.ts'




Or this command some time if needed :



ffmpeg -f "concat" -safe "0" -protocol_whitelist "file,http,https,tcp,tls" -i "input.txt" -c copy -y output.ts




Finally, for that download speed was good, MAYBE my server target has limited bandwidth. :-(


-
How to download a video from m3u8 with aes-128, IV with FFMPEG ? [closed]
13 avril 2021, par AWrrI've tried with a tutorial that prompted me to download the m3u8 file and then stream it with vlc but that didn't work. It just created a 160 bytes .mp4 file that couldn't be played.


When I opened it, it contains a line in the form of :


#EXT-X-KEY:METHOD=AES-128,URI="license://G",IV=0x08


I've read some threads talking aboout a .key file, but this one doesn't have a .key in the "URI=" section and I don't really knoe how to get one, if I needed it.


Will
ffmpeg -i playlist.m3u8 -c copy -bsf:a aac_adtstoasc output.mkv
work just fine ?

Edit : I've tried it and it showed this :


At the start

Unable to open key file


At the end


Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
size= 494kB time=00:00:00.00 bitrate=N/A speed= 0x
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)```