
Recherche avancée
Médias (1)
-
Rennes Emotion Map 2010-11
19 octobre 2011, par
Mis à jour : Juillet 2013
Langue : français
Type : Texte
Autres articles (86)
-
Mise à jour de la version 0.1 vers 0.2
24 juin 2013, parExplications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...) -
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
-
Multilang : améliorer l’interface pour les blocs multilingues
18 février 2011, parMultilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.
Sur d’autres sites (9933)
-
ffmpeg to count words in audio text
17 juillet 2020, par Joel ParkerI am new to signal processing but wanted to take an audio file and determine how many words are spoken in one minute. I was thinking I could use the top of the loudness peaks to count the words but do not quite understand how to achieve this.


First I used ffmpeg to remove the audio from the mp4 file I am using :


ffmpeg -i courtcase.mp4 audiofile.mp4


Then I tried to detect the loudness :


ffmpeg -t 10 -i audiofile.mp4 -af "volumedetect" -f null /dev/null


This produced some statistical information :


video:157kB audio:1723kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[Parsed_volumedetect_0 @ 0x7fa6b26068c0] n_samples: 882000
[Parsed_volumedetect_0 @ 0x7fa6b26068c0] mean_volume: -20.6 dB
[Parsed_volumedetect_0 @ 0x7fa6b26068c0] max_volume: -4.0 dB
[Parsed_volumedetect_0 @ 0x7fa6b26068c0] histogram_4db: 64
[Parsed_volumedetect_0 @ 0x7fa6b26068c0] histogram_5db: 88
[Parsed_volumedetect_0 @ 0x7fa6b26068c0] histogram_6db: 220
[Parsed_volumedetect_0 @ 0x7fa6b26068c0] histogram_7db: 843




I am not sure why it still shows 157kB of video, maybe my first command is wrong ?


Anyway, assuming the file is just audio I found this command, which I believe shows dbm slices for 10 seconds :


ffmpeg -i audiofile.mp4 -af astats=metadata=1:reset=1,ametadata=print:key=lavfi.astats.Overall.RMS_level:file=- -f null -



and it produced a bunch of output :


video:5782kB audio:63504kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[Parsed_astats_0 @ 0x7ff74c004bc0] Channel: 1
[Parsed_astats_0 @ 0x7ff74c004bc0] DC offset: 0.000240
[Parsed_astats_0 @ 0x7ff74c004bc0] Min level: -0.166239
[Parsed_astats_0 @ 0x7ff74c004bc0] Max level: 0.127112
[Parsed_astats_0 @ 0x7ff74c004bc0] Min difference: 0.000003
[Parsed_astats_0 @ 0x7ff74c004bc0] Max difference: 0.025335
[Parsed_astats_0 @ 0x7ff74c004bc0] Mean difference: 0.004455
[Parsed_astats_0 @ 0x7ff74c004bc0] RMS difference: 0.006165
[Parsed_astats_0 @ 0x7ff74c004bc0] Peak level dB: -15.585332
[Parsed_astats_0 @ 0x7ff74c004bc0] RMS level dB: -26.251394
[Parsed_astats_0 @ 0x7ff74c004bc0] RMS peak dB: -26.251394
[Parsed_astats_0 @ 0x7ff74c004bc0] RMS trough dB: -26.251394
[Parsed_astats_0 @ 0x7ff74c004bc0] Crest factor: 3.414311
[Parsed_astats_0 @ 0x7ff74c004bc0] Flat factor: 0.000000
[Parsed_astats_0 @ 0x7ff74c004bc0] Peak count: 2
[Parsed_astats_0 @ 0x7ff74c004bc0] Noise floor dB: nan
[Parsed_astats_0 @ 0x7ff74c004bc0] Noise floor count: 0
[Parsed_astats_0 @ 0x7ff74c004bc0] Bit depth: 32/32
[Parsed_astats_0 @ 0x7ff74c004bc0] Dynamic range: 72.297593
[Parsed_astats_0 @ 0x7ff74c004bc0] Zero crossings: 74
[Parsed_astats_0 @ 0x7ff74c004bc0] Zero crossings rate: 0.072266
[Parsed_astats_0 @ 0x7ff74c004bc0] Number of NaNs: 0
[Parsed_astats_0 @ 0x7ff74c004bc0] Number of Infs: 0
[Parsed_astats_0 @ 0x7ff74c004bc0] Number of denormals: 0
[Parsed_astats_0 @ 0x7ff74c004bc0] Channel: 2
[Parsed_astats_0 @ 0x7ff74c004bc0] DC offset: 0.000240
[Parsed_astats_0 @ 0x7ff74c004bc0] Min level: -0.166239
[Parsed_astats_0 @ 0x7ff74c004bc0] Max level: 0.127112
[Parsed_astats_0 @ 0x7ff74c004bc0] Min difference: 0.000003
[Parsed_astats_0 @ 0x7ff74c004bc0] Max difference: 0.025335
[Parsed_astats_0 @ 0x7ff74c004bc0] Mean difference: 0.004455
[Parsed_astats_0 @ 0x7ff74c004bc0] RMS difference: 0.006165
[Parsed_astats_0 @ 0x7ff74c004bc0] Peak level dB: -15.585332
[Parsed_astats_0 @ 0x7ff74c004bc0] RMS level dB: -26.251394
[Parsed_astats_0 @ 0x7ff74c004bc0] RMS peak dB: -26.251394
[Parsed_astats_0 @ 0x7ff74c004bc0] RMS trough dB: -26.251394
[Parsed_astats_0 @ 0x7ff74c004bc0] Crest factor: 3.414311
[Parsed_astats_0 @ 0x7ff74c004bc0] Flat factor: 0.000000
[Parsed_astats_0 @ 0x7ff74c004bc0] Peak count: 2
[Parsed_astats_0 @ 0x7ff74c004bc0] Noise floor dB: nan
[Parsed_astats_0 @ 0x7ff74c004bc0] Noise floor count: 0
[Parsed_astats_0 @ 0x7ff74c004bc0] Bit depth: 32/32
[Parsed_astats_0 @ 0x7ff74c004bc0] Dynamic range: 72.297593
[Parsed_astats_0 @ 0x7ff74c004bc0] Zero crossings: 74
[Parsed_astats_0 @ 0x7ff74c004bc0] Zero crossings rate: 0.072266
[Parsed_astats_0 @ 0x7ff74c004bc0] Number of NaNs: 0
[Parsed_astats_0 @ 0x7ff74c004bc0] Number of Infs: 0
[Parsed_astats_0 @ 0x7ff74c004bc0] Number of denormals: 0
[Parsed_astats_0 @ 0x7ff74c004bc0] Overall
[Parsed_astats_0 @ 0x7ff74c004bc0] DC offset: 0.000240
[Parsed_astats_0 @ 0x7ff74c004bc0] Min level: -0.166239
[Parsed_astats_0 @ 0x7ff74c004bc0] Max level: 0.127112
[Parsed_astats_0 @ 0x7ff74c004bc0] Min difference: 0.000003
[Parsed_astats_0 @ 0x7ff74c004bc0] Max difference: 0.025335
[Parsed_astats_0 @ 0x7ff74c004bc0] Mean difference: 0.004455
[Parsed_astats_0 @ 0x7ff74c004bc0] RMS difference: 0.006165
[Parsed_astats_0 @ 0x7ff74c004bc0] Peak level dB: -15.585332
[Parsed_astats_0 @ 0x7ff74c004bc0] RMS level dB: -26.251394
[Parsed_astats_0 @ 0x7ff74c004bc0] RMS peak dB: -26.251394
[Parsed_astats_0 @ 0x7ff74c004bc0] RMS trough dB: -26.251394
[Parsed_astats_0 @ 0x7ff74c004bc0] Flat factor: 0.000000
[Parsed_astats_0 @ 0x7ff74c004bc0] Peak count: 2.000000
[Parsed_astats_0 @ 0x7ff74c004bc0] Noise floor dB: nan
[Parsed_astats_0 @ 0x7ff74c004bc0] Noise floor count: 0.000000
[Parsed_astats_0 @ 0x7ff74c004bc0] Bit depth: 32/32
[Parsed_astats_0 @ 0x7ff74c004bc0] Number of samples: 1024
[Parsed_astats_0 @ 0x7ff74c004bc0] Number of NaNs: 0.000000
[Parsed_astats_0 @ 0x7ff74c004bc0] Number of Infs: 0.000000
[Parsed_astats_0 @ 0x7ff74c004bc0] Number of denormals: 0.000000
ts_time:368.268
lavfi.astats.Overall.RMS_level=-29.670653
frame:15861 pts:16241664 pts_time:368.292
lavfi.astats.Overall.RMS_level=-30.851195
frame:15862 pts:16242688 pts_time:368.315
lavfi.astats.Overall.RMS_level=-30.700943
frame:15863 pts:16243712 pts_time:368.338
lavfi.astats.Overall.RMS_level=-33.638604
frame:15864 pts:16244736 pts_time:368.361
lavfi.astats.Overall.RMS_level=-21.873170
frame:15865 pts:16245760 pts_time:368.385
lavfi.astats.Overall.RMS_level=-20.001936
frame:15866 pts:16246784 pts_time:368.408
lavfi.astats.Overall.RMS_level=-18.571318
frame:15867 pts:16247808 pts_time:368.431
lavfi.astats.Overall.RMS_level=-18.470749
frame:15868 pts:16248832 pts_time:368.454
lavfi.astats.Overall.RMS_level=-19.506688
frame:15869 pts:16249856 pts_time:368.477
lavfi.astats.Overall.RMS_level=-21.270579
frame:15870 pts:16250880 pts_time:368.501
lavfi.astats.Overall.RMS_level=-25.007862
frame:15871 pts:16251904 pts_time:368.524
lavfi.astats.Overall.RMS_level=-25.654372
frame:15872 pts:16252928 pts_time:368.547
lavfi.astats.Overall.RMS_level=-24.948357
frame:15873 pts:16253952 pts_time:368.57
lavfi.astats.Overall.RMS_level=-30.523540
frame:15874 pts:16254976 pts_time:368.594
....



This is where I'm stuck. I think I have the information I need to determine the number of words spoken in a minute, except I don't know how to put all together. Also the last command just measures 10s slices, would I need to change that to 60s ? Does anyone know how to do this or if there is a better approach ?


-
How to set the destination folder of a Node.js fluent-ffmpeg screenshot to your AWS S3 bucket using getSignedUrl() ?
10 juillet 2017, par Madhavi MohoniI’m writing a program to generate .png thumbnails (with the same name, in the same folder) for a set of .mp4 videos in my Amazon S3 bucket. For this example, I’m going to create a /folder/file.png for a /folder/file.mp4 in the bucket. I’ve managed to set the source URL using the s3 object and getSignedUrl as follows :
var srcurl = s3.getSignedUrl('getObject', {
Bucket: 'bucket-name',
Key: '/folder/file.mp4'
});and
new ffmpeg({ source: srcurl })
.screenshots({
count: 1,
filename: '%f'.substr(0, '%f'.indexOf('.')) + '.png',
/* To shorten the long string that's returned */
folder: desturl,
size: MAX_WIDTH + 'x' + MAX_HEIGHT
});The destination URL has to be the same folder as the source. So I set it as follows :
var desturl = s3.getSignedUrl('putObject', {
Bucket: 'bucket-name',
Key: '/folder/file' + '.png'
});This combination doesn’t work - is there a way to do this correctly ?
-
xdotool to tab to a button on a web page and use the mouse to disable a drop down menu option
25 juin 2023, par MashI have a Bash script that open a Amazon chime meeting URL in firefox, uses XDOtool to enter a meetig participant name, and tab and mouse click functions. and next uses ffmpeg to stream the video and audio output of the Amazon chime meeting to an RTMP destination.


When this is streamed, the Amazon chime web app has "More" drop down Menu. Within the Menu it has a option to disable the self view. I want to add xdotool commands to disable this self view option from the more drop down menu on the amazon chime web app page.


the Amazon chime meeting URL is - https://app.chime.aws/meetings/


Here is the Bash Script


#!/bin/bash
BROWSER_URL=${MEETING_URL}
SCREEN_WIDTH=1920
SCREEN_HEIGHT=1080
SCREEN_RESOLUTION=${SCREEN_WIDTH}x${SCREEN_HEIGHT}
CAPTURE_SCREEN_RESOLUTION=1920x1080
COLOR_DEPTH=24
X_SERVER_NUM=2
VIDEO_BITRATE=6000
VIDEO_FRAMERATE=30
VIDEO_GOP=$((VIDEO_FRAMERATE * 2))
AUDIO_BITRATE=160k
AUDIO_SAMPLERATE=44100
AUDIO_CHANNELS=2

# Start PulseAudio server so Firefox will have somewhere to which to send audio
pulseaudio -D --exit-idle-time=-1
pacmd load-module module-virtual-sink sink_name=v1 # Load a virtual sink as `v1`
pacmd set-default-sink v1 # Set the `v1` as the default sink device
pacmd set-default-source v1.monitor # Set the monitor of the v1 sink to be the default source

# Start X11 virtual framebuffer so Firefox will have somewhere to draw
Xvfb :${X_SERVER_NUM} -ac -screen 0 ${SCREEN_RESOLUTION}x${COLOR_DEPTH} > /dev/null 2>&1 &
export DISPLAY=:${X_SERVER_NUM}.0
sleep 0.5 # Ensure this has started before moving on

# Create a new Firefox profile for capturing preferences for this
firefox --no-remote --new-instance --createprofile "foo4 /tmp/foo4"

# Install the OpenH264 plugin for Firefox
mkdir -p /tmp/foo4/gmp-gmpopenh264/1.8.1.1/
pushd /tmp/foo4/gmp-gmpopenh264/1.8.1.1 >& /dev/null
curl -s -O http://ciscobinary.openh264.org/openh264-linux64-2e1774ab6dc6c43debb0b5b628bdf122a391d521.zip
unzip openh264-linux64-2e1774ab6dc6c43debb0b5b628bdf122a391d521.zip
rm -f openh264-linux64-2e1774ab6dc6c43debb0b5b628bdf122a391d521.zip
popd >& /dev/null

# Set the Firefox preferences to enable automatic media playing with no user
# interaction and the use of the OpenH264 plugin.
cat <<eof>> /tmp/foo4/prefs.js
user_pref("media.autoplay.default", 0);
user_pref("media.autoplay.enabled.user-gestures-needed", false);
user_pref("media.navigator.permission.disabled", true);
user_pref("media.gmp-gmpopenh264.abi", "x86_64-gcc3");
user_pref("media.gmp-gmpopenh264.lastUpdate", 1571534329);
user_pref("media.gmp-gmpopenh264.version", "1.8.1.1");
user_pref("doh-rollout.doorhanger-shown", true);
EOF

# Start Firefox browser and point it at the URL we want to capture
#
# NB: The `--width` and `--height` arguments have to be very early in the
# argument list or else only a white screen will result in the capture for some
# reason.
firefox \
 -P foo4 \
 --width ${SCREEN_WIDTH} \
 --height ${SCREEN_HEIGHT} \
 --new-instance \
 --first-startup \
 --foreground \
 --kiosk \
 --ssb \
 "${BROWSER_URL}" \
 &
sleep 10 # Ensure this has started before moving on, waiting for loading the Chime web app
xdotool key Return #Select yes for the pop-up window of "Would you like to open this link with Chime app?"
sleep 3
xdotool key Escape #Close the pop-up window
sleep 3
xdotool type Livestream #Type "Livestream" on the name input field
sleep 3
xdotool key Tab #Move to "join the meeting" button
sleep 3
xdotool key Return #Click "join the meeting" button
sleep 3
xdotool key Return #Close the pop-up window once again
sleep 3
xdotool key Escape #Close the pop-up window once again
sleep 3
xdotool key Return #Click "Use system audio" setting
sleep 3
xdotool key Escape #Close warning message
sleep 3
xdotool mousemove 1 1 click 1 # Move mouse out of the way so it doesn't trigger the "pause" overlay on the video tile 

# Start ffmpeg to transcode the capture from the X11 framebuffer and the
# PulseAudio virtual sound device we created earlier and send that to the RTMP
# endpoint in H.264/AAC format using a FLV container format.
#
# NB: These arguments have a very specific order. Seemingly inocuous changes in
# argument order can have pretty drastic effects, so be careful when
# adding/removing/reordering arguments here.
ffmpeg \
 -hide_banner -loglevel error \
 -nostdin \
 -s ${CAPTURE_SCREEN_RESOLUTION} \
 -r ${VIDEO_FRAMERATE} \
 -draw_mouse 0 \
 -f x11grab \
 -i ${DISPLAY} \
 -f pulse \
 -ac 2 \
 -i default \
 -vf "crop=1600:980:0:1080" \
 -c:v libx264 \
 -pix_fmt yuv420p \
 -profile:v main \
 -preset slow \
 -x264opts "nal-hrd=cbr:no-scenecut" \
 -minrate ${VIDEO_BITRATE} \
 -maxrate ${VIDEO_BITRATE} \
 -g ${VIDEO_GOP} \
 -filter_complex "aresample=async=1000:min_hard_comp=0.100000:first_pts=1" \
 -async 1 \
 -c:a aac \
 -b:a ${AUDIO_BITRATE} \
 -ac ${AUDIO_CHANNELS} \
 -ar ${AUDIO_SAMPLERATE} \
 -f flv ${RTMP_URL}``

</eof>


what i have tried so far in in the bash script