
Recherche avancée
Médias (91)
-
Collections - Formulaire de création rapide
19 février 2013, par
Mis à jour : Février 2013
Langue : français
Type : Image
-
Les Miserables
4 juin 2012, par
Mis à jour : Février 2013
Langue : English
Type : Texte
-
Ne pas afficher certaines informations : page d’accueil
23 novembre 2011, par
Mis à jour : Novembre 2011
Langue : français
Type : Image
-
The Great Big Beautiful Tomorrow
28 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Texte
-
Richard Stallman et la révolution du logiciel libre - Une biographie autorisée (version epub)
28 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Texte
-
Rennes Emotion Map 2010-11
19 octobre 2011, par
Mis à jour : Juillet 2013
Langue : français
Type : Texte
Autres articles (75)
-
Gestion des droits de création et d’édition des objets
8 février 2011, parPar défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;
-
Dépôt de média et thèmes par FTP
31 mai 2013, parL’outil MédiaSPIP traite aussi les média transférés par la voie FTP. Si vous préférez déposer par cette voie, récupérez les identifiants d’accès vers votre site MédiaSPIP et utilisez votre client FTP favori.
Vous trouverez dès le départ les dossiers suivants dans votre espace FTP : config/ : dossier de configuration du site IMG/ : dossier des média déjà traités et en ligne sur le site local/ : répertoire cache du site web themes/ : les thèmes ou les feuilles de style personnalisées tmp/ : dossier de travail (...) -
Keeping control of your media in your hands
13 avril 2011, parThe vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...)
Sur d’autres sites (9433)
-
libav ffmpeg - streaming from both a mkv and input stream
20 janvier 2020, par kealistI am trying to use ffmpeg libraries in C# with AutoGen bindings. The overall issue is that I am taking a collection of sources, some streams, and some .mkv containing recordings of a stream. As for now, they are all h264 and only video. For input streams, I am able to adjust the packets and broad cast them and that works fine, but any time I try to call
av_interleaved_write_frame
with packets from the MKV file, I get the errorError occurred: Invalid data found when processing input
.Here is the main loop, where the error happens for mkv files. Is there an extra step ?
/* read all packets */
while (true)
{
if ((ret = ffmpeg.av_read_frame(ifmt_ctx, &packet)) < 0)
{
Console.WriteLine("Unable to read packet");
break;
}
stream_index = (uint)packet.stream_index;
type = ifmt_ctx->streams[packet.stream_index]->codecpar->codec_type;
Console.WriteLine($"Demuxer gave frame of stream_index %{stream_index}");
/* remux this frame without reencoding */
ffmpeg.av_packet_rescale_ts(&packet,
ifmt_ctx->streams[stream_index]->time_base,
ofmt_ctx->streams[stream_index]->time_base);
if (packet.stream_index < 0)
{
Console.WriteLine("Packet stream error");
}
ret = ffmpeg.av_write_frame(ofmt_ctx, &packet);
if (ret < 0)
{
goto end;
}
else
{
ffmpeg.av_packet_unref(&packet);
}
}Anything need to be different for MKV files ?
I get some contradictory error output where it claims it is annex b but also isn’t :
[AVBSFContext @ 00000220eb657080] The input looks like it is Annex B already
Automatically inserted bitstream filter 'h264_mp4toannexb'; args=''
[mpegts @ 00000220ebace300] H.264 bitstream malformed, no startcode found, use the video bitstream filter 'h264_mp4toannexb' to fix it ('-bsf:v h264_mp4toannexb' option with ffmpeg)Verbose output from ffplay from an MKV file :
ffplay version git-2020-01-13-7225479 Copyright (c) 2003-2020 the FFmpeg developers
built with gcc 9.2.1 (GCC) 20200111
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
libavutil 56. 38.100 / 56. 38.100
libavcodec 58. 65.103 / 58. 65.103
libavformat 58. 35.102 / 58. 35.102
libavdevice 58. 9.103 / 58. 9.103
libavfilter 7. 71.100 / 7. 71.100
libswscale 5. 6.100 / 5. 6.100
libswresample 3. 6.100 / 3. 6.100
libpostproc 55. 6.100 / 55. 6.100
Initialized direct3d renderer.
[h264 @ 00000165ed18d140] Reinit context to 640x480, pix_fmt: yuv444p
Input #0, matroska,webm, from '.\webcam_14_Test1.mkv': 0B f=0/0
Metadata:
ENCODER : Lavf58.12.100
Duration: 00:00:39.30, start: 0.000000, bitrate: 1943 kb/s
Stream #0:0: Video: h264 (High 4:4:4 Predictive), 1 reference frame, yuv444p(progressive, left), 640x480 [SAR 1:1 DAR 4:3], 1k fps, 30 tbr, 1k tbn, 60 tbc (default)
Metadata:
DURATION : 00:00:39.299000000
[h264 @ 00000165f424e200] Reinit context to 640x480, pix_fmt: yuv444p
[ffplay_buffer @ 00000165f52ea840] w:640 h:480 pixfmt:yuv444p tb:1/1000 fr:30/1 sar:1/1
[auto_scaler_0 @ 00000165ed1d2c80] w:iw h:ih flags:'bicubic' interl:0
[ffplay_buffersink @ 00000165f424ef00] auto-inserting filter 'auto_scaler_0' between the filter 'ffplay_buffer' and the filter 'ffplay_buffersink'
[auto_scaler_0 @ 00000165ed1d2c80] w:640 h:480 fmt:yuv444p sar:1/1 -> w:640 h:480 fmt:yuv420p sar:1/1 flags:0x4
Created 640x480 texture with SDL_PIXELFORMAT_IYUV.
[AVIOContext @ 00000165ed179a40] Statistics: 9547965 bytes read, 0 seeks -
How do I write to a file in Golang using a pointer to the C data ?
20 juillet 2020, par nevernewI'm writing an app for the windows platform using FFmpeg and it's golang wrapper goav, but I'm having trouble understanding how to use the C pointers to gain access to an array.



I'm trying to write the frame data, pointed to by a uint8 pointer from C, to a .ppm file in golang.



Once I have this done, for proof of concept that FFmpeg is doing what I expect it to, I want to set the frames to a texture in OpenGl to make a video player with cool transitions ; any pointers to do that nice and efficiently would be so very helpful ! I'm guessing I need to write some shader code to draw the ppm as a texture...



The PPM file structure looks pretty simple just the header and then a byte of data for each red, green and blue value of each pixel in the frame from top left to bottom right



I'm starting to understanding how to cast the pointers between C and Go types, but how can I access the data and write it in Go with the same result as C ? In C I just have to set the pointer offset for the data and state how much of it to write :



for (y = 0; y < height; y++) {
 fwrite(pFrame->data[0]+y*pFrame->linesize[0], 1, width*3, pFile);
}




I've stripped out all the relevant parts of the C code, the wrapper and my code, shown below :



C code - libavutil/frame.h



#include 

typedef struct AVFrame {
#define AV_NUM_DATA_POINTERS 8
 uint8_t *data[AV_NUM_DATA_POINTERS];
 int linesize[AV_NUM_DATA_POINTERS];
}




Golang goav wrapper



package avutil

/*
 #cgo pkg-config: libavutil
 #include <libavutil></libavutil>frame.h>
 #include 
*/
import "C"
import (
 "unsafe"
)

type Frame C.struct_AVFrame

func Data(f *Frame) *uint8 {
 return (*uint8)(unsafe.Pointer((*C.uint8_t)(unsafe.Pointer(&f.data))))
}
func Linesize(f *Frame) int {
 return int(*(*C.int)(unsafe.Pointer(&f.linesize)))
}




My Golang code



package main

import "github.com/giorgisio/goav/avutil"

func saveFrame(videoFrame *avutil.Frame, width int, height int, iFrame int) {
 var szFilename string
 var y int
 var file *os.File
 var err error

 szFilename = ""

 // Open file
 szFilename = fmt.Sprintf("frame%d.ppm", iFrame)

 if file, err = os.Create(szFilename); err != nil {
 log.Println("Error Reading")
 }

 // Write header
 fh := []byte(fmt.Sprintf("P6\n%d %d\n255\n", width, height))
 file.Write(fh)
 var b byte = 0
 // Write pixel data
 for y = 0; y < height; y++ {
 d := avutil.Data(videoFrame) // d should be a pointer to the first byte of data
 l := avutil.Linesize(videoFrame)

 // I'm basically lost trying to figure out how to correctly write
 // this to a file, the file is created, but when I open it in GIMP
 // the image is mostly black with glitchy fuzz - so it's not being
 // written properly; the header seems to be ok, it knows the height
 // and width at least.

 data := make([]byte, l*3)

 ptr := unsafe.Pointer(d)
 for i := 0; i < l; i++ {
 datum := (*uint8)(unsafe.Pointer(uintptr(ptr) + (uintptr(i)+(uintptr(y)*uintptr(l)))*unsafe.Sizeof(*d)))
 data = append(data, *datum)
 //fmt.Println(*datum)
 }

 n, err := file.Write(data)
 if err != nil {
 log.Println("Error Writing:", szFilename, "-", n)
 }
 }

 file.Close()
}




So, how can I write to a file using a pointer to the data, like you can do in C, and get the same result ?



The first frame should be black so all 0's but I'm getting a glitchy fuzz, so it must be accessing some random data



Update : My fix using a C function to save :



package avutil

/*
 #cgo pkg-config: libavutil
 #include <libavutil></libavutil>frame.h>
 #include 
 #include 

 void SaveFrame(const char* location, AVFrame *pFrame, int width, int height) {
 FILE *pFile;
 int y;

 // Open file
 pFile=fopen(location, "wb");
 if(pFile==NULL)
 return;

 // Write header
 fprintf(pFile, "P6\n%d %d\n255\n", width, height);

 // Write pixel data
 for(y=0; ydata[0]+y*pFrame->linesize[0], 1, width*3, pFile);

 // Close file
 fclose(pFile);
 }
 uint8_t* GetData(AVFrame *pFrame) {
 return pFrame->data[0];
 }
*/
import "C"




I updated the avutil file, in the goav wrapper package, with this save function at the top, then pass it the frame context so it can get the data pointer from it. I also added this Go function to that avutil file to call the C function



func SaveFrame(location string, f *Frame, width int, height int) {
 csLoc := C.CString(location)
 C.SaveFrame(csLoc, (*C.struct_AVFrame)(unsafe.Pointer(f)), C.int(width), C.int(height))
 C.free(unsafe.Pointer(csLoc))
}



-
How to concatenate 3 mp4 files using ffmpeg (facing error in resultant video) ?
5 février 2021, par Mayank ThapliyalI have 3 videos of mp4 format. They have same resolution (640 X 1280) but other properties like frame rate etc are different. I want to join them back to back.So I gave a check on internet and I used the following method


:: Create File List
echo file file1.mp4 > mylist.txt 
echo file file2.mp4 >> mylist.txt
echo file file3.mp4 >> mylist.txt

:: Concatenate Files
ffmpeg -f concat -i mylist.txt -c copy output.mp4



But unfortunately it did not worked.In the resultant video, file1 part got freezed, and audio of whole video shifted (no idea how).And other methods are also not working properly


I just want to join them back to back.Any idea how to do it ?


Edit :- I gave a check on the output of the ffmpeg (using pause command in bat and discovered the following. Maybe it may help regarding the issue)


C:\Users\Cascade_Games\Desktop\Cascade Empire\ffmpeg-4.3.1-2020-10-01-full_build\bin>ffmpeg -f concat -i mylist.txt -vcodec copy -acodec copy Mux1.mp4
ffmpeg version 4.3.1-2020-10-01-full_build-www.gyan.dev Copyright (c) 2000-2020 the FFmpeg developers
 built with gcc 10.2.0 (Rev3, Built by MSYS2 project)
 configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libdav1d --enable-libzvbi --enable-librav1e --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
 libavutil 56. 51.100 / 56. 51.100
 libavcodec 58. 91.100 / 58. 91.100
 libavformat 58. 45.100 / 58. 45.100
 libavdevice 58. 10.100 / 58. 10.100
 libavfilter 7. 85.100 / 7. 85.100
 libswscale 5. 7.100 / 5. 7.100
 libswresample 3. 7.100 / 3. 7.100
 libpostproc 55. 7.100 / 55. 7.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 000002a0474e6a40] Auto-inserting h264_mp4toannexb bitstream filter
Input #0, concat, from 'mylist.txt':
 Duration: N/A, start: -0.023220, bitrate: 2447 kb/s
 Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x640 [SAR 1:1 DAR 2:1], 2320 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc
 Metadata:
 handler_name : VideoHandle
 Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s
 Metadata:
 handler_name : SoundHandler
Output #0, mp4, to 'Mux1.mp4':
 Metadata:
 encoder : Lavf58.45.100
 Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x640 [SAR 1:1 DAR 2:1], q=2-31, 2320 kb/s, 30 fps, 30 tbr, 15360 tbn, 15360 tbc
 Metadata:
 handler_name : VideoHandle
 Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s
 Metadata:
 handler_name : SoundHandler
Stream mapping:
 Stream #0:0 -> #0:0 (copy)
 Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[mov,mp4,m4a,3gp,3g2,mj2 @ 000002a04750d700] Auto-inserting h264_mp4toannexb bitstream filter
[mov,mp4,m4a,3gp,3g2,mj2 @ 000002a0474ef040] Auto-inserting h264_mp4toannexb bitstream filter
[mp4 @ 000002a0478e09c0] Non-monotonous DTS in output stream 0:1; previous: 30282976, current: 27826977; changing to 30282977. This may result in incorrect timestamps in the output file.
[mp4 @ 000002a0478e09c0] Non-monotonous DTS in output stream 0:1; previous: 30282977, current: 27828129; changing to 30282978. This may result in incorrect timestamps in the output file.
(Same Thing was getting repeated,hence I deleted it)
[mp4 @ 000002a0478e09c0] Non-monotonous DTS in output stream 0:1; previous: 30283209, current: 28095393; changing to 30283210. This may result in incorrect timestamps in the output file.
[mp4 @ 000002a0478e09c0] Non-monotonous DTS in output stream 0:1; previous: 30283210, current: 28096545; changing to 30283211. This may result in incorrect timestamps in the output file.
[mp4 @ 000002a0478e09c0] aac bitstream error
 Last message repeated 234 times
frame=18937 fps=11438 q=-1.0 Lsize= 49051kB time=00:11:26.69 bitrate= 585.2kbits/s speed= 415x
video:40720kB audio:7653kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.401324%



Edit :-
Info of all files (I have changed the video name to 1.mp4,2.mp4,3.mp4)


C:\Users\Cascade_Games\Desktop\Cascade Empire\ffmpeg-4.3.1-2020-10-01-full_build\bin>ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4
ffmpeg version 4.3.1-2020-10-01-full_build-www.gyan.dev Copyright (c) 2000-2020 the FFmpeg developers
 built with gcc 10.2.0 (Rev3, Built by MSYS2 project)
 configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libdav1d --enable-libzvbi --enable-librav1e --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
 libavutil 56. 51.100 / 56. 51.100
 libavcodec 58. 91.100 / 58. 91.100
 libavformat 58. 45.100 / 58. 45.100
 libavdevice 58. 10.100 / 58. 10.100
 libavfilter 7. 85.100 / 7. 85.100
 libswscale 5. 7.100 / 5. 7.100
 libswresample 3. 7.100 / 3. 7.100
 libpostproc 55. 7.100 / 55. 7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '1.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf58.45.100
 Duration: 00:00:05.27, start: 0.000000, bitrate: 2337 kb/s
 Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x640 [SAR 1:1 DAR 2:1], 2320 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
 Metadata:
 handler_name : VideoHandle
 Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
 Metadata:
 handler_name : SoundHandler
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from '2.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf58.45.100
 Duration: 00:10:25.70, start: 0.000000, bitrate: 616 kb/s
 Stream #1:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x640 [SAR 1:1 DAR 2:1], 511 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
 Metadata:
 handler_name : VideoHandler
 Stream #1:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 96 kb/s (default)
 Metadata:
 handler_name : SoundHandle
Input #2, mov,mp4,m4a,3gp,3g2,mj2, from '3.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf58.45.100
 Duration: 00:00:08.50, start: 0.000000, bitrate: 447 kb/s
 Stream #2:0(und): Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), yuv444p, 1280x640 [SAR 1:1 DAR 2:1], 228 kb/s, 2 fps, 2 tbr, 16384 tbn, 4 tbc (default)
 Metadata:
 handler_name : VideoHandler
 Stream #2:1(und): Audio: mp3 (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 319 kb/s (default)
 Metadata:
 handler_name : SoundHandler