
Recherche avancée
Autres articles (45)
-
Demande de création d’un canal
12 mars 2010, parEn fonction de la configuration de la plateforme, l’utilisateur peu avoir à sa disposition deux méthodes différentes de demande de création de canal. La première est au moment de son inscription, la seconde, après son inscription en remplissant un formulaire de demande.
Les deux manières demandent les mêmes choses fonctionnent à peu près de la même manière, le futur utilisateur doit remplir une série de champ de formulaire permettant tout d’abord aux administrateurs d’avoir des informations quant à (...) -
Ajouter des informations spécifiques aux utilisateurs et autres modifications de comportement liées aux auteurs
12 avril 2011, parLa manière la plus simple d’ajouter des informations aux auteurs est d’installer le plugin Inscription3. Il permet également de modifier certains comportements liés aux utilisateurs (référez-vous à sa documentation pour plus d’informations).
Il est également possible d’ajouter des champs aux auteurs en installant les plugins champs extras 2 et Interface pour champs extras. -
Use, discuss, criticize
13 avril 2011, parTalk to people directly involved in MediaSPIP’s development, or to people around you who could use MediaSPIP to share, enhance or develop their creative projects.
The bigger the community, the more MediaSPIP’s potential will be explored and the faster the software will evolve.
A discussion list is available for all exchanges between users.
Sur d’autres sites (6617)
-
Why a batch processing of ffmpeg is freezing the system ?
3 septembre 2019, par Krishna ChebroluI have a requirement of splitting smaller chunks of videos from 50+ mp4 source files for 5000+ records. Each record may result in 2 or 3 smaller chunks from as many source files out of those 50+.
The logic to determine which source file to be picked up is written in Java and then fed to
ffmpeg
onRuntime.getRuntime().exec()
usingExecutorService
withnewFixedThreadPool
as below :private static boolean processqueue(ArrayList<string> cmds) {
final ExecutorService pool;
int threadsnum = Runtime.getRuntime().availableProcessors()-2;
pool = Executors.newFixedThreadPool(threadsnum);
for(final String cmd: cmds){
pool.execute(new Runnable() {
public void run() {
System.out.println(cmd);
try {
Runtime.getRuntime().exec(cmd);
} catch (IOException e) {
e.printStackTrace();
pool.shutdown();
}
}
});
}
pool.shutdown();
// wait for them to finish for up to one minute.
try {
if(!pool.awaitTermination(1, TimeUnit.MINUTES)) {
pool.shutdownNow();
}
//Wait a while for tasks to respond to being cancelled
if(!pool.awaitTermination(1, TimeUnit.MINUTES))
System.err.println("Pool did not shutdown properly");
} catch (InterruptedException e) {
e.printStackTrace();
pool.shutdownNow();
//Preserve interrupt status
Thread.currentThread().interrupt();
return false;
}
return true;
}
</string>the String
cmd
value is one of these based on split or merge requirement :for split :
ffmpeg -y -ss 00:00:00 -t 00:08 -i E:/tmp/fin12.mp4 -acodec copy -vcodec copy E:/tmp/Intermed/0136f.mp4
or
for merge :
ffmpeg -y -i E:/tmp/Inter/0136c0.mp4 -i E:/tmp/Inter/0136c1.mp4 -i E:/tmp/Inter/0136f.mp4 -i E:/tmp/Jingle.mp4 -i E:/tmp/wm1280.png -filter_complex "[0:v][0:a][1:v][1:a][2:v][2:a][3:v][3:a]concat=n=4:v=1:a=1[vv][a];[vv][4:v]overlay=x=0:y=H-overlay_h[v]" -map "[v]" -map "[a]" E:/tmp/final/0136.mp4
On first attempt, only 250 records were processed. And, on subsequent attempt of balance records processing, it threw below exception ; but, processed another 300 records :
java.io.IOException: Cannot run program "ffmpeg": CreateProcess error=1455, The paging file is too small for this operation to complete
at java.lang.ProcessBuilder.start(Unknown Source)And, this code freezes often. Why is
ExecutorService
not holding up the queue to process all the records and exit gracefully ? What am I doing wrong ?Note : I’m calling Java class from windows batch script by passing relevant arguments which is executed from command line.
-
FFMPEG - Pipe Different HLS Resolutions to S3
17 juillet 2019, par MikeI’m trying to save all my HLS output files directly to S3. As you can see in the code, I’m saving output files for many different sizes and bitrates. My issue is I can’t figure out how to save the files onto S3. I have managed to get this working on an EC2 instance where I save all the files on the same server, but once I try to use
aws cli
it fails. I can also get this working if it’s just one resolution.I’m guessing it has something to do with piping multiple
aws cli
commands since I can see it tells meUnknown options:
, but I don’t see any other way of doing this.Also, I’m using the
-progress
flag so I can show the transcode progress to the user, can I pipe that directly to S3 as-well ?Note, the code below has been formatted to make it readable, it obviously doesn’t look like this when ran on the server.
FFMPEG Command
ffmpeg
-hide_banner -y
-i https://my-bucket.s3.us-west-1.amazonaws.com/in.mp4
-progress https://mybucket.s3.us-west-1.amazonaws.com/progress.log
-c:a aac
-c:v libx264
-f mp4
-profile:v high
-level:v 4.0
-crf 20
-sc_threshold 0
-flags +cgop
-movflags frag_keyframe+faststart
-pix_fmt yuv420p
-preset ultrafast
-g 100
-keyint_min 100
-hls_time 5000
-hls_playlist_type vod
-vf scale='trunc(oh*a/2)*2:288'
-b:v 600k
-maxrate 642k
-bufsize 900k
-b:a 64k
-hls_segment_filename https://my-bucket.s3.us-west-1.amazonaws.com/288p_600k_%03d.ts
pipe:1 | aws s3 cp - s3://my-bucket/288p_600k.m3u8
-vf scale='trunc(oh*a/2)*2:360'
-b:v 900k
-maxrate 963k
-bufsize 1350k
-b:a 96k
-hls_segment_filename https://my-bucket.s3.us-west-1.amazonaws.com/360p_900k_%03d.ts
pipe:1 | aws s3 cp - s3://my-bucket/360p_900k.m3u8
-vf scale='trunc(oh*a/2)*2:432'
-b:v 1600k
-maxrate 1712k
-bufsize 2400k
-b:a 128k
-hls_segment_filename https://my-bucket.s3.us-west-1.amazonaws.com/432p_1600k_%03d.ts
pipe:1 | aws s3 cp - s3://my-bucket/432p_1600k.m3u8
-vf scale='trunc(oh*a/2)*2:720'
-b:v 3200k
-maxrate 3424k
-bufsize 4800k
-b:a 128k
-hls_segment_filename https://my-bucket.s3.us-west-1.amazonaws.com/720p_3200k_%03d.ts
pipe:1 | aws s3 cp - s3://my-bucket/720p_3200k.m3u8
-vf scale='trunc(oh*a/2)*2:1080'
-b:v 5300k
-maxrate 5671k
-bufsize 7950k
-b:a 192k
-hls_segment_filename https://my-bucket.s3.us-west-1.amazonaws.com/1080p_5300k_%03d.ts
pipe:1 | aws s3 cp - s3://my-bucket/1080p_5300k.m3u8Error Message
Exit Code: 1(General error)
Working directory: /home/backend/public
Output:
================
Error Output:
================
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'https://my-bucket.s3.us-west-1.amazonaws.com/in.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
creation_time : 1970-01-01T00:00:00.000000Z
encoder : Lavf53.24.2
Duration: 00:00:05.31, start: 0.000000, bitrate: 1589 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 1205 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
Metadata:
creation_time : 1970-01-01T00:00:00.000000Z
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 384 kb/s (default)
Metadata:
creation_time : 1970-01-01T00:00:00.000000Z
handler_name : SoundHandler
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
[libx264 @ 0x55ba09a95300] using SAR=1/1
[libx264 @ 0x55ba09a95300] using cpu capabilities: MMX2 SSE2Fast LZCNT SSSE3 SSE4.2 AVX
[libx264 @ 0x55ba09a95300] profile Constrained Baseline, level 4.0
[libx264 @ 0x55ba09a95300] 264 - core 152 r2854 e9a5903 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=100 keyint_min=51 scenecut=0 intra_refresh=0 rc_lookahead=0 rc=crf mbtree=0 crf=20.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=642 vbv_bufsize=900 crf_max=0.0 nal_hrd=none filler=0 ip_ratio=1.40 aq=0
Output #0, mp4, to 'pipe:':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.83.100
Stream #0:0(und): Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 512x288 [SAR 1:1 DAR 16:9], q=-1--1, 600 kb/s, 25 fps, 12800 tbn, 25 tbc (default)
Metadata:
creation_time : 1970-01-01T00:00:00.000000Z
handler_name : VideoHandler
encoder : Lavc57.107.100 libx264
Side data:
cpb: bitrate max/min/avg: 642000/0/600000 buffer size: 900000 vbv_delay: -1
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 64 kb/s (default)
Metadata:
creation_time : 1970-01-01T00:00:00.000000Z
handler_name : SoundHandler
encoder : Lavc57.107.100 aac
frame= 27 fps=0.0 q=28.0 size= 0kB time=00:00:01.13 bitrate=
0.3kbits/s speed=2.21x
Unknown options: -vf,scale=trunc(oh*a/2)*2:360,-b:v,900k,-maxrate,963k,-bufsize,1350k,-b:a,96k,-hls_segment_filename,https://my-bucket.s3.us-west-1.amazonaws.com/360p_900k_%03d.ts,-
Unknown options: -vf,scale=trunc(oh*a/2)*2:432,-b:v,1600k,-maxrate,1712k,-bufsize,2400k,-b:a,128k,-hls_segment_filename,https://my-bucket.s3.us-west-1.amazonaws.com/432p_1600k_%03d.ts,-
Unknown options: -vf,scale=trunc(oh*a/2)*2:720,-b:v,3200k,-maxrate,3424k,-bufsize,4800k,-b:a,128k,-hls_segment_filename,https://my-bucket.s3.us-west-1.amazonaws.com/720p_3200k_%03d.ts,-
Unknown options: -vf,scale=trunc(oh*a/2)*2:1080,-b:v,5300k,-maxrate,5671k,-bufsize,7950k,-b:a,192k,-hls_segment_filename,https://my-bucket.s3.us-west-1.amazonaws.com/1080p_5300k_%03d.ts,-
upload failed: - to s3://my-bucket/1080p_5300k.m3u8 seek() takes 2 positional arguments but 3 were given
av_interleaved_write_frame(): Broken pipe
Error writing trailer of pipe:: Broken pipe
frame= 105 fps=104 q=27.0 Lsize= 0kB time=00:00:04.26 bitrate=
0.1kbits/s speed=4.24x
video:405kB audio:36kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[libx264 @ 0x55ba09a95300] frame I:2 Avg QP:27.31 size: 31711
[libx264 @ 0x55ba09a95300] frame P:103 Avg QP:29.12 size: 3522
[libx264 @ 0x55ba09a95300] mb I I16..4: 100.0% 0.0% 0.0%
[libx264 @ 0x55ba09a95300] mb P I16..4: 0.8% 0.0% 0.0% P16..4: 58.1%
0.0% 0.0% 0.0% 0.0% skip:41.2%
[libx264 @ 0x55ba09a95300] coded y,uvDC,uvAC intra: 71.6% 66.1% 45.5%
inter: 29.8% 10.3% 1.5%
[libx264 @ 0x55ba09a95300] i16 v,h,dc,p: 16% 26% 35% 23%
[libx264 @ 0x55ba09a95300] i8c dc,h,v,p: 47% 22% 20% 11%
[libx264 @ 0x55ba09a95300] kb/s:811.77
[aac @ 0x55ba09e26c60] Qavg: 88.610
Conversion failed! -
merge segments with ffmpeg causes small cracks in the audio
14 octobre 2019, par Paulo MedeirosTo speed up the delivery of videos on my platform I split the uploaded medias into segments of up to 120 seconds and process them simultaneously on several machines.
After processing, I put the pieces back together with "-f concat".
Unfortunately, new media is generated with small cracks in the audio (they occur exactly at the junction). I haven’t found a filter / command yet to end the problem. Does anybody know how to solve this ?
Note : I am using ffmpeg 3.4.1
This is the command I make to split the media :
ffmpeg -hide_banner -fflags +genpts -avoid_negative_ts make_zero -y -v error -i /video/somevideo.mov -map 0:v? -map 0:a? -c copy -f segment -segment_time 120 -segment_format matroska -reset_timestamps 1 -segment_list_type ffconcat -segment_list /video/segment_map.ffcat /video/segment%03d
A short example of the command used to process a segment
some variables change according to the resolution
ffmpeg -y -hide_banner -v error -probesize 10M -analyzeduration 10M -itsoffset 0.066 -i /video/segment000 -c:v libx264 -preset fast -profile:v high -crf 23 -r 117375/3916 -maxrate 1500000 -bufsize 2250000 -g 58 -keyint_min 58 -sc_threshold 0 -bf 3 -b_strategy 2 -refs 10 -vf scale="iw*sar:ih,scale=trunc(oh*a/2)*2:540" -pix_fmt yuv420p -max_muxing_queue_size 5000 -strict -2 -c:a aac -b:a 128000 -ar 44100 -f mp4 /video/transcode/segment000
to finalize how do I join the segments
ffmpeg -hide_banner -v error -f concat -safe 0 -y -i /video/transcode/segment_map.ffcat -c copy -movflags +faststart /video/transcoded.mp4