
Recherche avancée
Médias (1)
-
MediaSPIP Simple : futur thème graphique par défaut ?
26 septembre 2013, par
Mis à jour : Octobre 2013
Langue : français
Type : Video
Autres articles (64)
-
Le profil des utilisateurs
12 avril 2011, parChaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...) -
Configurer la prise en compte des langues
15 novembre 2010, parAccéder à la configuration et ajouter des langues prises en compte
Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...) -
XMP PHP
13 mai 2011, parDixit Wikipedia, XMP signifie :
Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...)
Sur d’autres sites (5280)
-
ld : library not found for -lavutil caused by zergon321/reisen on Mac M2
27 octobre 2022, par Ido Van OrellCommand :


CGO_CPPFLAGS="-I/opt/homebrew/Cellar/ffmpeg/5.1.2/include" go run .



Output :


# github.com/zergon321/reisen
cgo-gcc-prolog:114:35: warning: 'swr_alloc_set_opts' is deprecated [-Wdeprecated-declarations]
/opt/homebrew/Cellar/ffmpeg/5.1.2/include/libswresample/swresample.h:259:1: note: 'swr_alloc_set_opts' has been explicitly marked deprecated here
/opt/homebrew/Cellar/ffmpeg/5.1.2/include/libavutil/attributes.h:100:49: note: expanded from macro 'attribute_deprecated'
/usr/local/go/pkg/tool/darwin_arm64/link: running clang failed: exit status 1
ld: library not found for -lavutil
clang: error: linker command failed with exit code 1 (use -v to see invocation)



Context :


- 

- trying to run Go code that imports
"github.com/zergon321/reisen"
on Mac M2 - solved the previous header issue - not being able to find libavcodec/avcodec.h
- have
libavutil
installed in the same location as libavcodec -/opt/homebrew/Cellar/ffmpeg/5.1.2/include
so should be also picked up by the CGO_CPPFLAGS.








Could it be the deprecation warning for
libavutil
(see above) ?

- trying to run Go code that imports
-
Undefined reference to 'av_register_all' [duplicate]
4 avril 2018, par HaskThis question already has an answer here :
When I try to compile my cpp file in which the header files from ffmpeg are connected :
#include
#include
extern "C"
{
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
#include "libswscale/swscale.h"
}
int main(int argc, char* argv[])
{
if(argc < 2)
{
printf("Usage: %s filename\n", argv[0]);
}
av_register_all();
return 0;
}When compiling with a simple command I get :
D:\gcc\bin>g++ -o a a.cpp
C:\users\root\Temp\ccC9UvT7.o:a.cpp:(.text+0x2a): undefined reference to 'av_register_all'
collect2.exe: error: ld returned 1 exit statusUsing a more complex I get :
D:\gcc\bin>g++ -o a a.cpp -lavutil -lavformat -lavcodec -lz
d:/gcc/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: cannot -lavutil
d:/gcc/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: cannot -lavformat
d:/gcc/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: cannot -lavcodec
d:/gcc/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: cannot -lz
collect2.exe: error: ld returned 1 exit statusHow can I fix this ?
-
C++ FFmpeg create mp4 file
1er février 2021, par DDovzhenkoI'm trying to create mp4 video file with FFmpeg and C++, but in result I receive broken file (windows player shows "Can't play ... 0xc00d36c4"). If I create .h264 file, it can be played with 'ffplay' and successfully converted to mp4 via CL.



My code :



int main() {
 char *filename = "tmp.mp4";
 AVOutputFormat *fmt;
 AVFormatContext *fctx;
 AVCodecContext *cctx;
 AVStream *st;

 av_register_all();
 avcodec_register_all();

 //auto detect the output format from the name
 fmt = av_guess_format(NULL, filename, NULL);
 if (!fmt) {
 cout << "Error av_guess_format()" << endl; system("pause"); exit(1);
 }

 if (avformat_alloc_output_context2(&fctx, fmt, NULL, filename) < 0) {
 cout << "Error avformat_alloc_output_context2()" << endl; system("pause"); exit(1);
 }


 //stream creation + parameters
 st = avformat_new_stream(fctx, 0);
 if (!st) {
 cout << "Error avformat_new_stream()" << endl; system("pause"); exit(1);
 }

 st->codecpar->codec_id = fmt->video_codec;
 st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO;
 st->codecpar->width = 352;
 st->codecpar->height = 288;
 st->time_base.num = 1;
 st->time_base.den = 25;

 AVCodec *pCodec = avcodec_find_encoder(st->codecpar->codec_id);
 if (!pCodec) {
 cout << "Error avcodec_find_encoder()" << endl; system("pause"); exit(1);
 }

 cctx = avcodec_alloc_context3(pCodec);
 if (!cctx) {
 cout << "Error avcodec_alloc_context3()" << endl; system("pause"); exit(1);
 }

 avcodec_parameters_to_context(cctx, st->codecpar);
 cctx->bit_rate = 400000;
 cctx->width = 352;
 cctx->height = 288;
 cctx->time_base.num = 1;
 cctx->time_base.den = 25;
 cctx->gop_size = 12;
 cctx->pix_fmt = AV_PIX_FMT_YUV420P;
 if (st->codecpar->codec_id == AV_CODEC_ID_H264) {
 av_opt_set(cctx->priv_data, "preset", "ultrafast", 0);
 }
 if (fctx->oformat->flags & AVFMT_GLOBALHEADER) {
 cctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
 }
 avcodec_parameters_from_context(st->codecpar, cctx);

 av_dump_format(fctx, 0, filename, 1);

 //OPEN FILE + WRITE HEADER
 if (avcodec_open2(cctx, pCodec, NULL) < 0) {
 cout << "Error avcodec_open2()" << endl; system("pause"); exit(1);
 }
 if (!(fmt->flags & AVFMT_NOFILE)) {
 if (avio_open(&fctx->pb, filename, AVIO_FLAG_WRITE) < 0) {
 cout << "Error avio_open()" << endl; system("pause"); exit(1);
 }
 }
 if (avformat_write_header(fctx, NULL) < 0) {
 cout << "Error avformat_write_header()" << endl; system("pause"); exit(1);
 }


 //CREATE DUMMY VIDEO
 AVFrame *frame = av_frame_alloc();
 frame->format = cctx->pix_fmt;
 frame->width = cctx->width;
 frame->height = cctx->height;
 av_image_alloc(frame->data, frame->linesize, cctx->width, cctx->height, cctx->pix_fmt, 32);

 AVPacket pkt;
 double video_pts = 0;
 for (int i = 0; i < 50; i++) {
 video_pts = (double)cctx->time_base.num / cctx->time_base.den * 90 * i;

 for (int y = 0; y < cctx->height; y++) {
 for (int x = 0; x < cctx->width; x++) {
 frame->data[0][y * frame->linesize[0] + x] = x + y + i * 3;
 if (y < cctx->height / 2 && x < cctx->width / 2) {
 /* Cb and Cr */
 frame->data[1][y * frame->linesize[1] + x] = 128 + y + i * 2;
 frame->data[2][y * frame->linesize[2] + x] = 64 + x + i * 5;
 }
 }
 }

 av_init_packet(&pkt);
 pkt.flags |= AV_PKT_FLAG_KEY;
 pkt.pts = frame->pts = video_pts;
 pkt.data = NULL;
 pkt.size = 0;
 pkt.stream_index = st->index;

 if (avcodec_send_frame(cctx, frame) < 0) {
 cout << "Error avcodec_send_frame()" << endl; system("pause"); exit(1);
 }
 if (avcodec_receive_packet(cctx, &pkt) == 0) {
 //cout << "Write frame " << to_string((int) pkt.pts) << endl;
 av_interleaved_write_frame(fctx, &pkt);
 av_packet_unref(&pkt);
 }
 }

 //DELAYED FRAMES
 for (;;) {
 avcodec_send_frame(cctx, NULL);
 if (avcodec_receive_packet(cctx, &pkt) == 0) {
 //cout << "-Write frame " << to_string((int)pkt.pts) << endl;
 av_interleaved_write_frame(fctx, &pkt);
 av_packet_unref(&pkt);
 }
 else {
 break;
 }
 }

 //FINISH
 av_write_trailer(fctx);
 if (!(fmt->flags & AVFMT_NOFILE)) {
 if (avio_close(fctx->pb) < 0) {
 cout << "Error avio_close()" << endl; system("pause"); exit(1);
 }
 }
 av_frame_free(&frame);
 avcodec_free_context(&cctx);
 avformat_free_context(fctx);

 system("pause");
 return 0;
}




Output of program :



Output #0, mp4, to 'tmp.mp4':
 Stream #0:0: Video: h264, yuv420p, 352x288, q=2-31, 400 kb/s, 25 tbn
[libx264 @ 0000021c4a995ba0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0000021c4a995ba0] profile Constrained Baseline, level 2.0
[libx264 @ 0000021c4a995ba0] 264 - core 152 r2851 ba24899 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=12 keyint_min=1 scenecut=0 intra_refresh=0 rc=abr mbtree=0 bitrate=400 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
[libx264 @ 0000021c4a995ba0] frame I:5 Avg QP: 7.03 size: 9318
[libx264 @ 0000021c4a995ba0] frame P:45 Avg QP: 4.53 size: 4258
[libx264 @ 0000021c4a995ba0] mb I I16..4: 100.0% 0.0% 0.0%
[libx264 @ 0000021c4a995ba0] mb P I16..4: 0.0% 0.0% 0.0% P16..4: 100.0% 0.0% 0.0% 0.0% 0.0% skip: 0.0%
[libx264 @ 0000021c4a995ba0] final ratefactor: 9.11
[libx264 @ 0000021c4a995ba0] coded y,uvDC,uvAC intra: 18.9% 21.8% 14.5% inter: 7.8% 100.0% 15.5%
[libx264 @ 0000021c4a995ba0] i16 v,h,dc,p: 4% 5% 5% 86%
[libx264 @ 0000021c4a995ba0] i8c dc,h,v,p: 2% 9% 6% 82%
[libx264 @ 0000021c4a995ba0] kb/s:264.68




If I will try to play mp4 file with 'ffplay' it prints :



[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000026bf900] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none, 352x288, 138953 kb/s): unspecified pixel format
[h264 @ 00000000006c6ae0] non-existing PPS 0 referenced
[h264 @ 00000000006c6ae0] decode_slice_header error
[h264 @ 00000000006c6ae0] no frame!




I've spent a lot of time without success of finding issue, what could be the reason of it ?



Thank for help !