
Recherche avancée
Médias (91)
-
Valkaama DVD Cover Outside
4 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Image
-
Valkaama DVD Label
4 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Image
-
Valkaama DVD Cover Inside
4 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Image
-
1,000,000
27 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Demon Seed
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
The Four of Us are Dying
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
Autres articles (97)
-
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 (...) -
Installation en mode ferme
4 février 2011, parLe mode ferme permet d’héberger plusieurs sites de type MediaSPIP en n’installant qu’une seule fois son noyau fonctionnel.
C’est la méthode que nous utilisons sur cette même plateforme.
L’utilisation en mode ferme nécessite de connaïtre un peu le mécanisme de SPIP contrairement à la version standalone qui ne nécessite pas réellement de connaissances spécifique puisque l’espace privé habituel de SPIP n’est plus utilisé.
Dans un premier temps, vous devez avoir installé les mêmes fichiers que l’installation (...) -
Installation en mode standalone
4 février 2011, parL’installation de la distribution MediaSPIP se fait en plusieurs étapes : la récupération des fichiers nécessaires. À ce moment là deux méthodes sont possibles : en installant l’archive ZIP contenant l’ensemble de la distribution ; via SVN en récupérant les sources de chaque modules séparément ; la préconfiguration ; l’installation définitive ;
[mediaspip_zip]Installation de l’archive ZIP de MediaSPIP
Ce mode d’installation est la méthode la plus simple afin d’installer l’ensemble de la distribution (...)
Sur d’autres sites (7756)
-
How to read alpha channel from .webm video using ffmpeg in c++
27 octobre 2022, par Pasin KunamartBackground


I have a
.webm
file (pix_fmt : yuva420p) converted from.mov
video file in order to reduce file size and I would like to read the video data using c++, so I followed using this repo as a reference.

This works perfectly on
.mov
video.

Problem


By using same repo, however, there is no alpha channel data (pure zeros on that channel) for .webm video but I can get the alpha data from
.mov
video.

Apparently many people already noticed that after the video conversion,
ffmpeg
somehow detect video as yuv420p +alpha_mode : 1
and thus alpha channel is not used but there is no one discuss about workaround of this.

I tried forcing pixel format during this part to use
yuva420p
but that just broke the whole program.

// Set up sws scaler
 if (!sws_scaler_ctx) {
 auto source_pix_fmt = correct_for_deprecated_pixel_format(av_codec_ctx->pix_fmt);
 sws_scaler_ctx = sws_getContext(width, height, source_pix_fmt,
 width, height, AV_PIX_FMT_RGB0,
 SWS_BILINEAR, NULL, NULL, NULL);
 }



I also verified my video that it contains alpha channel using other source so I am sure there is alpha channel in my
webm
video but I cannot fetch the data using ffmpeg.

Is there a way to fetch the alpha data ? Other video format or using other libraries work as well as long as it does have some file compression but I need to access the data in c++.


Note : This is the code I used for converting video to
webm


ffmpeg -i input.mov -c:v libvpx-vp9 -pix_fmt yuva420p output.webm



-
Grayscale streaming from raw video using FFMPEG
31 août 2022, par user1657208I have a raw video file (testvideo_1000f.raw) that I am trying to stream in gray scale using ffmpeg and output the grayscale video to output.swf. The command I am using to do this is :



ffmpeg/ffmpeg -qmin 2 -qmax 31 -s 320x240 -f rawvideo -flags gray -pix_fmt:output gray -an -i testvideo_1000f.raw output.swf




However, the result from this command is a video stream that is in gray scale but still contains some of the chrominance data. The output from this command is pasted below :



3 [volta]/home/student/elliott> ffmpeg/ffmpeg -qmin 2 -qmax 31 -s 320x240 -f rawvideo -flags gray -pix_fmt:output gray -an -i testvideo_1000f.raw output.swf
ffmpeg version N-41632-g2b1fc56 Copyright (c) 2000-2012 the FFmpeg developers
 built on Jul 29 2012 10:27:26 with gcc 4.1.2 20080704 (Red Hat 4.1.2-51)
 configuration: 
 libavutil 51. 58.100 / 51. 58.100
 libavcodec 54. 25.100 / 54. 25.100
 libavformat 54. 6.101 / 54. 6.101
 libavdevice 54. 0.100 / 54. 0.100
 libavfilter 2. 80.100 / 2. 80.100
 libswscale 2. 1.100 / 2. 1.100
 libswresample 0. 15.100 / 0. 15.100
*** CHOOSING 8
[rawvideo @ 0xdda9660] Estimating duration from bitrate, this may be inaccurate
Input #0, rawvideo, from 'testvideo_1000f.raw':
 Duration: N/A, start: 0.000000, bitrate: N/A
 Stream #0:0: Video: rawvideo (Y800 / 0x30303859), gray, 320x240, 25 tbr, 25 tbn, 25 tbc
File 'output.swf' already exists. Overwrite ? [y/N] y
w:320 h:240 pixfmt:gray tb:1/25 fr:25/1 sar:0/1 sws_param:flags=2
[ffmpeg_buffersink @ 0xddb7b40] No opaque field provided
[format @ 0xddb7d40] auto-inserting filter 'auto-inserted scaler 0' between the filter 'Parsed_null_0' and the filter 'format'
[auto-inserted scaler 0 @ 0xddb7920] w:320 h:240 fmt:gray sar:0/1 -> w:320 h:240 fmt:yuv420p sar:0/1 flags:0x4
*** CHOOSING 8
Output #0, swf, to 'output.swf':
 Metadata:
 encoder : Lavf54.6.101
 Stream #0:0: Video: flv1, yuv420p, 320x240, q=2-31, 200 kb/s, 90k tbn, 25 tbc
Stream mapping:
 Stream #0:0 -> #0:0 (rawvideo -> flv)
Press [q] to stop, [?] for help
Truncating packet of size 76800 to 1 2875kB time=00:00:40.84 bitrate= 576.7kbits/s 
frame= 1500 fps=1035 q=24.8 Lsize= 4194kB time=00:01:00.00 bitrate= 572.6kbits/s 
video:4166kB audio:0kB global headers:0kB muxing overhead 0.669245%




I am fairly new to FFMPEG and I am afraid I am using either the wrong syntax or the wrong parameters in my command line. For some reason, the format of the output is yuv420p. I have tried searching for this answer all over but have had no luck. Could anyone please help me and tell me why the output is being formatted in yuv420p when I am giving the command for it to be in 8bit grayscale ? Any help would be greatly appreciated. Thank you.



Marc Elliott


-
FFMpeg C++ encoder fails with hardware acceleration quick sync intel
28 août 2022, par tealsI am trying to debug an issue I have with a simple C++ encoder using FFMmpeg. The following code below works correctly on these other hardware acceleration systems/platforms :


- 

- Mac/VideoToolbox,
- Cuda/NVEnc
- Raspberry pi/h264_v4l2m2m.








It fails on intel quick sync at
avcodec_open2
. I'm using Ubuntu 22.04. I built FFMpeg from source with the Intel Media SDK installed and configured. I verified that the QuickSync install works. I also have a corresponding decoder implementation that works correctly using intel quick sync. So I know everything properly installed. I am also running this on an 11th Gen Intel CPU.

[hevc_qsv @ 0x564b0d34f0c0] Low power mode is unsupported (This sometimes shows up)
[hevc_qsv @ 0x563691234000] some encoding parameters are not supported by the QSV runtime. Please double check the input parameters.
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height



This is the only error that I get and I haven't found any helpful resources. I tried playing around with different parameters but nothing seems to work. Any help or insight would be extremely helpful.


bool VideoEncoder::create() {
 char const* outfile = filePath.c_str();

 // open output format context
 int ret = avformat_alloc_output_context2(&ofctx, nullptr, nullptr, outfile);
 if (ret < 0) {
 std::cerr << "fail to avformat_alloc_output_context2(" << outfile << "): ret=" << ret;
 return false;
 }

 // create new video stream
 const AVCodec* codec = avcodec_find_encoder_by_name(encoderName.c_str());
 vstrm = avformat_new_stream(ofctx, codec);
 if (!vstrm) {
 std::cerr << "fail to avformat_new_stream";
 return false;
 }

 // open video encoder
 cctx = avcodec_alloc_context3(codec);
 if (!vstrm) {
 std::cerr << "fail to avcodec_alloc_context3";
 return false;
 }
 const AVRational dst_fps = {fps, 1};
 cctx->width = width;
 cctx->height = height;
 if(pixel_format != AV_PIX_FMT_NONE) {
 cctx->pix_fmt = pixel_format;
 }
 else {
 cctx->pix_fmt = codec->pix_fmts[0];
 }
 cctx->time_base = av_inv_q(dst_fps);
 cctx->framerate = dst_fps;
 cctx->bit_rate = bitrate * 1000000;


 AVDictionary* options = nullptr;
 if(gpu_id >= 0) {
 av_dict_set_int(&options, "gpu", gpu_id, 0);
 }

 
 if (ofctx->oformat->flags & AVFMT_GLOBALHEADER)
 cctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
 ret = avcodec_open2(cctx, codec, &options);
 if (ret < 0) {
 std::cerr << "fail to avcodec_open2: ret=" << ret;
 return false;
 }
 avcodec_parameters_from_context(vstrm->codecpar, cctx);

 //For mac/quicktime we need to add hvc1 tag.
 if (encoderName.find("hevc") != std::string::npos) {
 vstrm->codecpar->codec_tag = MKTAG('h', 'v', 'c', '1');
 }

 /*
 std::cout
 << "outfile: " << outfile << "\n"
 << "format: " << ofctx->oformat->name << "\n"
 << "vcodec: " << codec->name << "\n"
 << "size: " << width << 'x' << height << "\n"
 << "fps: " << av_q2d(cctx->framerate) << "\n"
 << "pixfmt: " << av_get_pix_fmt_name(cctx->pix_fmt) << "\n"
 << std::flush;*/

 // initialize sample scaler
 swsCtx = sws_getContext(
 width, height, AV_PIX_FMT_BGR24,
 width, height, cctx->pix_fmt,
 SWS_BILINEAR, nullptr, nullptr, nullptr);
 if (!swsCtx) {
 std::cerr << "fail to sws_getContext";
 return false;
 }

 // allocate frame buffer for encoding
 frame = av_frame_alloc();
 frame->width = width;
 frame->height = height;
 frame->format = static_cast<int>(cctx->pix_fmt);
 ret = av_frame_get_buffer(frame, 32);
 if (ret < 0) {
 std::cerr << "fail to av_frame_get_buffer: ret=" << ret;
 return false;
 }

 // allocate packet to retrive encoded frame
 pkt = av_packet_alloc();
 // open output IO context
 ret = avio_open2(&ofctx->pb, outfile, AVIO_FLAG_WRITE, nullptr, nullptr);
 if (ret < 0) {
 std::cerr << "fail to avio_open2: ret=" << ret;
 return false;
 }

 // write media container header (if any)
 ret = avformat_write_header(ofctx, nullptr);
 if (ret < 0) {
 std::cerr << "fail to avformat_write_header: ret=" << ret;
 return false;
 }

 return true;
}
</int>