
Recherche avancée
Médias (1)
-
The Great Big Beautiful Tomorrow
28 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Texte
Autres articles (81)
-
Amélioration de la version de base
13 septembre 2013Jolie sélection multiple
Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...) -
Menus personnalisés
14 novembre 2010, parMediaSPIP utilise le plugin Menus pour gérer plusieurs menus configurables pour la navigation.
Cela permet de laisser aux administrateurs de canaux la possibilité de configurer finement ces menus.
Menus créés à l’initialisation du site
Par défaut trois menus sont créés automatiquement à l’initialisation du site : Le menu principal ; Identifiant : barrenav ; Ce menu s’insère en général en haut de la page après le bloc d’entête, son identifiant le rend compatible avec les squelettes basés sur Zpip ; (...) -
Gestion de la ferme
2 mars 2010, parLa ferme est gérée dans son ensemble par des "super admins".
Certains réglages peuvent être fais afin de réguler les besoins des différents canaux.
Dans un premier temps il utilise le plugin "Gestion de mutualisation"
Sur d’autres sites (8981)
-
ffmpeg writes invalid fps to the mp4 container (and in avi it is true). What is the reason ?
8 juin 2020, par Ivan Sh.I need to record frames in real time. To test this situation, I make pts non-linear (since frames may be lost), thus :



// AVFrame
video_frame->pts = prev_pts + 2;




I use libavformat to write to a file. Parameters AVCodecContext and AVStream :



#define STREAM_FRAME_RATE 25
#define CODEC_PIX_FMT AV_PIX_FMT_YUV420P
#define FRAME_WIDTH 1440
#define FRAME_HEIGHT 900

// AVCodecContext
cc->codec_id = video_codec->id;
cc->bit_rate = 400000;
cc->width = FRAME_WIDTH;
cc->height = FRAME_HEIGHT;
cc->gop_size = 12;
cc->pix_fmt = CODEC_PIX_FMT;

// AVStream
video_stream->time_base = AVRational{ 1, STREAM_FRAME_RATE };
cc->time_base = video_stream->time_base;
cc->framerate = AVRational{ STREAM_FRAME_RATE , 1 };




Write to file :



static int write_frame(AVFormatContext *fmt_ctx, const AVRational *time_base, AVStream *st, AVPacket *pkt)
{
 /* rescale output packet timestamp values from codec to stream timebase */
 //av_packet_rescale_ts(pkt, *time_base, st->time_base);
 pkt->pts = av_rescale_q(pkt->pts, *time_base, st->time_base);
 pkt->dts = av_rescale_q(pkt->dts, *time_base, st->time_base);
 pkt->stream_index = st->index;

 /* Write the compressed frame to the media file. */
 //log_packet(fmt_ctx, pkt);
 //return av_write_frame(fmt_ctx, pkt);
 return av_interleaved_write_frame(fmt_ctx, pkt);
}




If you use the avi container, then the information on the number of frames per second is indicated correctly in the file : 25 fps






If you use the mp4 container, then the file information about the number of frames per second is indicated incorrectly : 12.5 fps






Tell me, please, what other settings need to be added ?


-
Add coverart into ogg container with ffmpeg
21 mars 2021, par SebMaI'm trying to add a coverart into an ogg file with
ffmpeg
:



Here are my
source.ogg
andsource.jpg
files :


$ ffprobe -hide_banner source.ogg 
Input #0, ogg, from 'source.ogg':
 Duration: 00:03:02.45, start: 0.007500, bitrate: 73 kb/s
 Stream #0:0: Audio: opus, 48000 Hz, stereo, fltp
 Metadata:
 DURATION : 00:03:02.441000000
 ENCODER : Lavf58.20.100
$ identify source.jpg 
source.jpg JPEG 480x360 480x360+0+0 8-bit DirectClass 15.1KB 0.000u 0:00.000




I tried this :



$ ffmpeg -hide_banner -i source.ogg -i source.jpg -map 0 -map 1 -c:a copy -c copy -map_metadata 0 dest.ogg -y && echo && ffprobe -hide_banner dest.ogg 
Input #0, ogg, from 'source.ogg':
 Duration: 00:03:02.45, start: 0.007500, bitrate: 73 kb/s
 Stream #0:0: Audio: opus, 48000 Hz, stereo, fltp
 Metadata:
 DURATION : 00:03:02.441000000
 ENCODER : Lavf58.20.100
Input #1, image2, from 'source.jpg':
 Duration: 00:00:00.04, start: 0.000000, bitrate: 3023 kb/s
 Stream #1:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 480x360 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
[ogg @ 0x5655578064c0] Unsupported codec id in stream 1
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Stream mapping:
 Stream #0:0 -> #0:0 (copy)
 Stream #1:0 -> #0:1 (copy)
 Last message repeated 1 times
[ogg @ 0x5655577e8540] Format ogg detected only with low score of 1, misdetection possible!
dest.ogg: End of file




I've also found this answer but it does not explain how to do it with
ffmpeg
.


I've read about a "METADATA_BLOCK_PICTURE" metadata in the ogg container that might contain the picture in base64, so I tried this :



$ ffmpeg -hide_banner -i source.ogg -map 0 -c:a copy -c copy -metadata METADATA_BLOCK_PICTURE="$(base64 source.jpg)" dest.ogg
Input #0, ogg, from 'source.ogg':
 Duration: 00:03:02.45, start: 0.007500, bitrate: 73 kb/s
 Stream #0:0: Audio: opus, 48000 Hz, stereo, fltp
 Metadata:
 DURATION : 00:03:02.441000000
 ENCODER : Lavf58.20.100
File 'dest.ogg' already exists. Overwrite ? [y/N] y
Output #0, ogg, to 'dest.ogg':
 Metadata:
 METADATA_BLOCK_PICTURE: /9j/4AAQSkZJRgABAQAAAQABAAD/2wCEABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkz
 : ODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2MBERISGBUYLxoaL2NCOEJjY2NjY2NjY2Nj
 ..............................................................................
 : nVmaS2E/urUWVbH6ORI9z2l8zyRfFpkLooIHSBuk9lFFoC6OBnP1SON8rEooqM2WOVHDdRRAAUVK
 : KiiCWRRRRBJ//9k=
 encoder : Lavf58.20.100
 Stream #0:0: Audio: opus, 48000 Hz, stereo, fltp
 Metadata:
 DURATION : 00:03:02.441000000
 ENCODER : Lavf58.20.100
 METADATA_BLOCK_PICTURE: /9j/4AAQSkZJRgABAQAAAQABAAD/2wCEABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkz
 : ODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2MBERISGBUYLxoaL2NCOEJjY2NjY2NjY2Nj
 : Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY//AABEIAWgB4AMBIgACEQED
 ..............................................................................
 : nVmaS2E/urUWVbH6ORI9z2l8zyRfFpkLooIHSBuk9lFFoC6OBnP1SON8rEooqM2WOVHDdRRAAUVK
 : KiiCWRRRRBJ//9k=
Stream mapping:
 Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
size= 1658kB time=00:03:02.41 bitrate= 74.5kbits/s speed=1.01e+03x 
video:0kB audio:1624kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.100392%




It kinda "worked", but neither
ffplay
normpv
can parse the cover art :


$ ffplay -hide_banner dest.ogg
[ogg @ 0x5655577e8540] Failed to parse cover art block.
Input #0, ogg, from 'dest.ogg':
 Duration: 00:03:02.44, start: 0.000000, bitrate: 74 kb/s
 Stream #0:0: Audio: opus, 48000 Hz, stereo, fltp
 Metadata:
 DURATION : 00:03:02.441000000
 ENCODER : Lavf58.20.100
 3.95 M-A: -0.000 fd= 0 aq= 14KB vq= 0KB sq= 0B f=0/0 
$ mpv dest.ogg 
Playing: dest.ogg
[ffmpeg/demuxer] ogg: Failed to parse cover art block.
 (+) Audio --aid=1 (opus 2ch 48000Hz)
AO: [pulse] 48000Hz stereo 2ch float
A: 00:00:03 / 00:03:02 (2%)


Exiting... (Quit)




I alse tried
-metadata:s:a
along with the--wrap 0
ofbase64
(which I had forgotten to specify, oops :) ) :


$ ffmpeg -i source.ogg -map 0 -c:a copy -c copy -metadata:s:a METADATA_BLOCK_PICTURE="$(base64 --wrap 0 source.jpg)" dest.ogg
Input #0, ogg, from 'source.ogg':
 Duration: 00:03:02.45, start: 0.007500, bitrate: 73 kb/s
 Stream #0:0: Audio: opus, 48000 Hz, stereo, fltp
 Metadata:
 DURATION : 00:03:02.441000000
 ENCODER : Lavf58.20.100
File 'dest.ogg' already exists. Overwrite ? [y/N] y
Output #0, ogg, to 'dest.ogg':
 Metadata:
 encoder : Lavf58.20.100
 Stream #0:0: Audio: opus, 48000 Hz, stereo, fltp
 Metadata:
 DURATION : 00:03:02.441000000
 ENCODER : Lavf58.20.100
 METADATA_BLOCK_PICTURE: /9j/4AAQSkZJRgABAQAAAQABAAD/2wCEABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2MBERISGBUYLxoaL2NCOEJjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY//AABEIAWgB4AMBIgACEQEDEQH/xAAaAAACAwEBAAAAAAAAAAA
Stream mapping:
 Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
size= 1658kB time=00:03:02.41 bitrate= 74.5kbits/s speed=1.22e+03x 
video:0kB audio:1624kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.084397%




But still the
dest.ogg
jpg coverart cannot be read properly :


$ ffprobe -hide_banner dest.ogg 
[ogg @ 0x5655577e8540] Invalid picture type: -2555936.
[ogg @ 0x5655577e8540] Could not read mimetype from an attached picture.
Input #0, ogg, from 'dest.ogg':
 Duration: 00:03:02.44, start: 0.000000, bitrate: 74 kb/s
 Stream #0:0: Audio: opus, 48000 Hz, stereo, fltp
 Metadata:
 DURATION : 00:03:02.441000000
 ENCODER : Lavf58.20.100




Can you please help me ?


-
ffmpeg : audio to opus and embed song cover to lossless vp9 in webm container
14 mars 2020, par snow344im having some trouble in making a lossless webm of a audio file
mpv plays it fine, but youtube won’t process it no matter what
ffmpeg -i "audio.flac" -c:v vp9 -c:a libopus -lossless 1 -b:a 500k -pix_fmt yuv420p test.webm
Stream #0:0: Audio: flac, 44100 Hz, stereo, s16
Stream #0:1: Video: mjpeg (Progressive), yuv444p(pc, bt470bg/unknown/unknown), 800x800 [SAR 300:300 DAR 1:1], 90k tbr, 90k tbn, 90k tbc (attached pic)
Metadata:
comment : Cover (front)
File 'test.webm' already exists. Overwrite? [y/N] y
Stream mapping:
Stream #0:1 -> #0:0 (mjpeg (native) -> vp9 (libvpx-vp9))
Stream #0:0 -> #0:1 (flac (native) -> opus (libopus))
Press [q] to stop, [?] for help
[swscaler @ 0000028ef88c6000] deprecated pixel format used, make sure you did set range correctly
[libvpx-vp9 @ 0000028ef854cf00] v1.8.2
Output #0, webm, to 'test.webm':
Stream #0:0: Video: vp9 (libvpx-vp9), yuv420p(progressive), 800x800 [SAR 1:1 DAR 1:1], q=-1--1, 90k fps, 1k tbn, 90k tbc (attached pic)
Metadata:
comment : Cover (front)
encoder : Lavc58.73.101 libvpx-vp9
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
Stream #0:1: Audio: opus (libopus), 48000 Hz, stereo, s16, 500 kb/s
Metadata:
encoder : Lavc58.73.101 libopus
frame= 1 fps=0.2 q=0.0 Lsize= 15327kB time=00:04:11.17 bitrate= 499.9kbits/s speed=53.7x
video:386kB audio:14853kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.574758%thanks in advance