
Recherche avancée
Autres articles (112)
-
Ecrire une actualité
21 juin 2013, parPrésentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
Vous pouvez personnaliser le formulaire de création d’une actualité.
Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...) -
Encoding and processing into web-friendly formats
13 avril 2011, parMediaSPIP automatically converts uploaded files to internet-compatible formats.
Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
All uploaded files are stored online in their original format, so you can (...) -
Script d’installation automatique de MediaSPIP
25 avril 2011, parAfin de palier aux difficultés d’installation dues principalement aux dépendances logicielles coté serveur, un script d’installation "tout en un" en bash a été créé afin de faciliter cette étape sur un serveur doté d’une distribution Linux compatible.
Vous devez bénéficier d’un accès SSH à votre serveur et d’un compte "root" afin de l’utiliser, ce qui permettra d’installer les dépendances. Contactez votre hébergeur si vous ne disposez pas de cela.
La documentation de l’utilisation du script d’installation (...)
Sur d’autres sites (9918)
-
How can I concatenate these two video files that are in different formats with ffmpeg ?
11 juin 2018, par jaybersFile s.mp4 is created from a photo and a silent audio track was added in.
File r.mp4 was created using the built in video record on an android tablet.I would like to try to match s.mp4 to r.mp4 so that they can concatenate (s then r). Right now, the time base seems off and it plays audio from the r.mp4 but never shows the video. It it always shows the video from s.mp4. I was able to match the tbn of 90k by using
-video_track_timescale 90k
but I did not know how to match the tbc. It is 180k on one and 59.94 on the other.Probe for s.mp4
./ffprobe s.mp4
ffprobe version 4.0-tessus Copyright (c) 2007-2018 the FFmpeg developers
built with Apple LLVM version 9.1.0 (clang-902.0.39.1)
configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay
libavutil 56. 14.100 / 56. 14.100
libavcodec 58. 18.100 / 58. 18.100
libavformat 58. 12.100 / 58. 12.100
libavdevice 58. 3.100 / 58. 3.100
libavfilter 7. 16.100 / 7. 16.100
libswscale 5. 1.100 / 5. 1.100
libswresample 3. 1.100 / 3. 1.100
libpostproc 55. 1.100 / 55. 1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 's.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.25.100
Duration: 00:00:05.04, start: 0.000000, bitrate: 296 kb/s
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 286 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 2 kb/s (default)
Metadata:
handler_name : SoundHandlerProbe for r.mp4
./ffprobe r.mp4
ffprobe version 4.0-tessus Copyright (c) 2007-2018 the FFmpeg developers
built with Apple LLVM version 9.1.0 (clang-902.0.39.1)
configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay
libavutil 56. 14.100 / 56. 14.100
libavcodec 58. 18.100 / 58. 18.100
libavformat 58. 12.100 / 58. 12.100
libavdevice 58. 3.100 / 58. 3.100
libavfilter 7. 16.100 / 7. 16.100
libswscale 5. 1.100 / 5. 1.100
libswresample 3. 1.100 / 3. 1.100
libpostproc 55. 1.100 / 55. 1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'r.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
creation_time : 2018-06-11T20:12:03.000000Z
com.android.version: 7.0
Duration: 00:00:10.89, start: 0.000000, bitrate: 17087 kb/s
Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709/bt709/smpte170m), 1920x1080, 16810 kb/s, SAR 1:1 DAR 16:9, 30 fps, 30 tbr, 90k tbn, 180k tbc (default)
Metadata:
creation_time : 2018-06-11T20:12:03.000000Z
handler_name : VideoHandle
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default)
Metadata:
creation_time : 2018-06-11T20:12:03.000000Z
handler_name : SoundHandle -
ffmpeg encoding .mp4 fails in safari when hosted from s3. handbrake encoded video works first time
11 juin 2018, par Simon RogersThe mp4 videos I’ve encoded with ffmpeg work perfectly in Safari if stored locally, but break if hosted from s3. I have tried countless encoding settings to no avail.
However having just run a mov quickly through Handbrake and ticking ’optimise for web’ and encoding baseline @ 4.0, this has worked perfectly first time.
I don’t understand what could be going wrong with my ffmpeg encoding.
Things I have noticed about files from two separate encoders which work :
They both have
yuv420p(tv, bt709)
whereas ffmpeg is just sayingyuv420p
– this is the only thing I can identify from ffprobe that is consistently different.I have done a fresh install of ffmpeg to no avail :
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install ffmpeg --with-fdk-aac --with-ffplay --with-freetype --with-libass --with-libvorbis --with-libvpx --with-opus --with-x265
This error appears in all the files I have encoded with ffmpeg :
Unsupported codec with id 0 for input stream 1
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
mp4box gives the following for the ffmpeg video, which doesn’t work :
Tempuras-iMac:tests tempura$ mp4box -info /Users/tempura/tests/mov-output-10-1400.mp4
* Movie Info *
Timescale 1000 - 1 track
Computed Duration 00:00:10.967 - Indicated Duration 00:00:10.967
Fragmented File: no
File suitable for progressive download (moov before mdat)
File Brand isom - version 512
Compatible brands: isom iso2 avc1 mp41
Created: UNKNOWN DATE Modified: UNKNOWN DATE
File has no MPEG4 IOD/OD
iTunes Info:
Encoder Software: Lavf58.12.100
1 UDTA types: meta (1)
Track # 1 Info - TrackID 1 - TimeScale 15360
Media Duration 00:00:10.966 - Indicated Duration 00:00:10.966
Track has 1 edit lists: track duration is 00:00:10.967
Media Info: Language "English (eng)" - Type "vide:avc1" - 329 samples
Visual Track layout: x=0 y=0 width=1800 height=1200
MPEG-4 Config: Visual Stream - ObjectTypeIndication 0x21
AVC/H264 Video - Visual Size 1800 x 1200
AVC Info: 1 SPS - 1 PPS - Profile Baseline @ Level 4
NAL Unit length bits: 32
Pixel Aspect Ratio 1:1 - Indicated track size 1800 x 1200
Chroma format YUV 4:2:0 - Luma bit depth 8 - chroma bit depth 8
SPS#1 hash: 2BD106A8DFD73B92825D87D4D312B22F9CEC1986
PPS#1 hash: 656AE5F3BE854F3C8B889E72310662390F18EDBD
Self-synchronized
RFC6381 Codec Parameters: avc1.42C028
Average GOP length: 329 samplesAnd gives the following for two videos that do work.
First :
Tempuras-iMac:tests tempura$ mp4box -info /Users/tempura/tests/mov-output-05-1400.mp4
[iso file] Unknown box type tmcd
[iso file] Read Box type (0x00000000) has size 0 but is not at root/file level, skipping
* Movie Info *
Timescale 1000 - 2 tracks
Computed Duration 00:00:10.967 - Indicated Duration 00:00:10.967
Fragmented File: no
File suitable for progressive download (moov before mdat)
File Brand isom - version 512
Compatible brands: isom iso2 avc1 mp41
Created: UNKNOWN DATE Modified: UNKNOWN DATE
File has no MPEG4 IOD/OD
iTunes Info:
Encoder Software: Lavf58.12.100
1 UDTA types: meta (1)
Track # 1 Info - TrackID 1 - TimeScale 15360
Media Duration 00:00:10.966 - Indicated Duration 00:00:10.966
Track has 1 edit lists: track duration is 00:00:10.967
Media Info: Language "English (eng)" - Type "vide:avc1" - 329 samples
Visual Track layout: x=0 y=0 width=1800 height=1200
MPEG-4 Config: Visual Stream - ObjectTypeIndication 0x21
AVC/H264 Video - Visual Size 1800 x 1200
AVC Info: 1 SPS - 1 PPS - Profile Baseline @ Level 4
NAL Unit length bits: 32
Pixel Aspect Ratio 1:1 - Indicated track size 1800 x 1200
Chroma format YUV 4:2:0 - Luma bit depth 8 - chroma bit depth 8
SPS#1 hash: 39D86732FD5F78B18F2E83C651FAE38EA0E30A6D
PPS#1 hash: 656AE5F3BE854F3C8B889E72310662390F18EDBD
Self-synchronized
RFC6381 Codec Parameters: avc1.42C028
Average GOP length: 329 samples
Track # 2 Info - TrackID 2 - TimeScale 15360
Media Duration 00:00:10.966 - Indicated Duration 00:00:10.966
Track has 1 edit lists: track duration is 00:00:10.967
Track is disabled
Media Info: Language "Undetermined (und)" - Type "tmcd:tmcd" - 1 samples
Unknown media type
RFC6381 Codec Parameters: tmcd
All samples are syncSecond :
Tempuras-iMac:tests tempura$ mp4box -info /Users/tempura/Documents/yes_2106.mp4
* Movie Info *
Timescale 30000 - 1 track
Computed Duration 00:00:10.966 - Indicated Duration 00:00:10.966
Fragmented File: no
File suitable for progressive download (moov before mdat)
File Brand isom - version 1
Compatible brands: isom avc1 mp42
Created: GMT Fri Jun 1 11:24:54 2018
Modified: GMT Fri Jun 1 11:24:54 2018
File has root IOD (9 bytes)
Scene PL 0xff - Graphics PL 0xff - OD PL 0xff
Visual PL: ISO Reserved Profile (0x15)
Audio PL: No audio capability required (0xff)
No streams included in root OD
Track # 1 Info - TrackID 1 - TimeScale 30
Media Duration 00:00:10.966 - Indicated Duration 00:00:10.966
Media Info: Language "Undetermined (und)" - Type "vide:avc1" - 329 samples
Visual Track layout: x=0 y=0 width=1800 height=1200
MPEG-4 Config: Visual Stream - ObjectTypeIndication 0x21
AVC/H264 Video - Visual Size 1800 x 1200
AVC Info: 1 SPS - 1 PPS - Profile Baseline @ Level 4.2
NAL Unit length bits: 32
Pixel Aspect Ratio 1:1 - Indicated track size 1800 x 1200
Chroma format YUV 4:2:0 - Luma bit depth 8 - chroma bit depth 8
SPS#1 hash: ED5CFE0A3F65F36ADCFA347C1273A29784E8AEAC
PPS#1 hash: 7ECF7597FDDAC5F8C82B54BFB40A1F9A8D8807FA
Self-synchronized
RFC6381 Codec Parameters: avc1.42C02A
Average GOP length: 329 samples -
How to use Google's Cloud Speech-to-Text REST API to transcribe a video
24 juillet 2018, par mrbI’d like to have the transcript of 2 people speaking in a video, but I get an empty response from the Cloud Speech-to-Text API
Approach :
I have a 56 minute video file containing a conversation between two people. I would like to have the transcript of that conversation, and I would like to use Google’s Cloud Speech-to-Text API to get that.
To save a little on my Google Cloud Storage I converted to video to audio first by using
mmpeg
.First I’d tried to figure out the audio codec by using the command below, and it looks like AAC.
ffmpeg -i video.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'videoplayback.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
creation_time : 2015-12-30T08:17:14.000000Z
Duration: 00:56:03.99, start: 0.000000, bitrate: 362 kb/s
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 490x360 [SAR 1:1 DAR 49:36], 264 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 96 kb/s (default)
Metadata:
creation_time : 2015-12-30T08:17:31.000000Z
handler_name : IsoMedia File Produced by Google, 5-11-2011So I took that from the video by using :
ffmpeg -i video.mp4 -vn -acodec copy myaudio.aac
Details so far :
ffmpeg -i myaudio.aac
Outputs :Input #0, aac, from 'myaudio.aac':
Duration: 00:56:47.49, bitrate: 97 kb/s
Stream #0:0: Audio: aac (LC), 44100 Hz, stereo, fltp, 97 kb/sAfter that I converted it to opus because I’m told that opus is better
ffmpeg -i myaudio.aac -acodec libopus -b:a 97k -vbr on -compression_level 10 myaudio.opus
Info so far :
opusinfo myaudio.opus
User comments section follows...
encoder=Lavc58.18.100 libopus
Opus stream 1:
Pre-skip: 312
Playback gain: 0 dB
Channels: 2
Original sample rate: 48000Hz
Packet duration: 20.0ms (max), 20.0ms (avg), 20.0ms (min)
Page duration: 1000.0ms (max), 1000.0ms (avg), 1000.0ms (min)
Total data length: 29956714 bytes (overhead: 0.872%)
Playback length: 56m:03.990s
Average bitrate: 71.24 kb/s, w/o overhead: 70.62 kb/sI this point I uploaded the
myaudio.opus
to the Google Cloud Storage.curl POST 1
I started the speech recognition by doing a POST withcurl
:curl --request POST --header "Content-Type: application/json" --url 'https://speech.googleapis.com/v1/speech:longrunningrecognize?fields=done%2Cerror%2Cmetadata%2Cname%2Cresponse&key={MY_API_KEY}' --data '{"audio": {"uri": "gs://{MY_BUCKET}/myaudio.opus"},"config": {"encoding": "OGG_OPUS", "sampleRateHertz": 48000, "languageCode": "en-US"}}'
Response :
{"name": "123456789"}
123456789 was not the actual value.curl GET 1
Now I wanted to have the results :curl --request GET --url 'https://speech.googleapis.com/v1/operations/123456789?fields=done%2Cerror%2Cmetadata%2Cname%2Cresponse&key={MY_API_KEY}'
This gave me the error :
Error : Unable to recognize speech, possible error in encoding or channel config. Please correct the config and retry the request.
So I updated the encoding configuration from
OGG_OPUS
toLINEAR16
.curl POST 2
Did the post again :curl --request POST --header "Content-Type: application/json" --url 'https://speech.googleapis.com/v1/speech:longrunningrecognize?fields=done%2Cerror%2Cmetadata%2Cname%2Cresponse&key={MY_API_KEY}' --data '{"audio": {"uri": "gs://{MY_BUCKET}/myaudio.opus"},"config": {"encoding": "LINEAR16", "sampleRateHertz": 48000, "languageCode": "en-US"}}'
Response :
{"name": "987654321"}
curl GET 2
curl --request GET --url 'https://speech.googleapis.com/v1/operations/987654321?fields=done%2Cerror%2Cmetadata%2Cname%2Cresponse&key={MY_API_KEY}'
Response :
{
"name": "987654321",
"metadata": {
"@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeMetadata",
"progressPercent": 100,
"startTime": "2018-06-08T11:01:24.596504Z",
"lastUpdateTime": "2018-06-08T11:01:51.825882Z"
},
"done": true
}The problem is that I don’t get the actual transcription. According the the documentation there should be a
response
key in the response containing the data.Since I’m kinda stuck here I’d like to know if I’m doing something completely wrong. I don’t have any technical or resource limitation so all suggestions are very welcome ! Also happy to change my approach.
Thanks in advance ! Cheers