
Recherche avancée
Autres articles (100)
-
Mise à jour de la version 0.1 vers 0.2
24 juin 2013, parExplications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...) -
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
-
Emballe médias : à quoi cela sert ?
4 février 2011, parCe plugin vise à gérer des sites de mise en ligne de documents de tous types.
Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ;
Sur d’autres sites (9509)
-
Android Java — Using and building FFMPEG library in Android Studio(Cmake)
12 septembre 2017, par y3k00000As title, I’m trying to use the ffmpeg source code as library in Android Studio on Ubuntu Linux, but meeting some trouble in compilation stage. I think I must be missing some compile option but having no idea what I miss, can somebody lend a hand ?
My codes & settings are below :
A simple auto-generated .cpp
#include
#include <string>
#include "libavcodec/aacenc.h"
extern "C"
JNIEXPORT jstring JNICALL
Java_y3k_testffmpegnative_MainActivity_stringFromJNI(
JNIEnv *env,
jobject /* this */) {
std::string hello = "Hello from C++";
return env->NewStringUTF(hello.c_str());
}
AACEncContext * aacEncContext; // Just trying by adding this.
</string>I’ve tried these Gradle setting and it didn’t help :
android {
....
externalNativeBuild {
cmake {
arguments "-DANDROID_TOOLCHAIN=clang"
cFlags "-std=c99"
cppFlags "-frtti","-fexceptions"
}
}
}
....CMakeLists.txt
(Android Studio generated)
....
include_directories( /home/y3k/ffmpeg )Error message while compiling :
/home/y3k/ffmpeg/libavutil/float_dsp.h
Error:(164, 50) error: expected ')'
Information:(164, 30) to match this '('
Error:(164, 50) error: expected ')'
Information:(164, 30) note: to match this '('
/home/y3k/ffmpeg/libavutil/fixed_dsp.h
Error:(153, 44) error: expected ')'
Information:(153, 30) to match this '('
Error:(153, 44) error: expected ')'
Information:(153, 30) note: to match this '('
/home/y3k/ffmpeg/libavcodec/mpeg4audio.h
Error:(44, 8) error: unknown type name 'av_export'
Error:(44, 18) error: expected unqualified-id
Error:(44, 8) error: unknown type name 'av_export'
Error:(44, 18) error: expected unqualified-id
/home/y3k/ffmpeg/libavcodec/aac.h
Error:(294, 21) error: expected member name or ';' after declaration specifiers
Error:(294, 21) error: expected member name or ';' after declaration specifiersFFMpeg config.h generated by this script :
NDK=/home/y3k/Android/Sdk/ndk-bundle
SYSROOT=$NDK/platforms/android-23/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
function build_one
{
./configure \
--prefix=$PREFIX \
--disable-shared \
--enable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-avdevice \
--disable-doc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=linux \
--arch=arm \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install
}
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_oneBy tracing the errors I found these lines :
in float_dsp.h, fixed_dsp.h :
void (*butterflies_float)(float *av_restrict v1, float *av_restrict v2, int len);
av_restrict defined in config.h
#define av_restrict restrict
in aac.h :
....
struct AACContext {
AVClass *class;
....in mpeg4audio.h :
extern av_export const int avpriv_mpeg4audio_sample_rates[16];
So I’m guessing it’s because the compiler misrecognized the C code as C++, I tried adding these :
arguments "-DANDROID_TOOLCHAIN=clang"
cFlags "-std=c99"to my build.gradle but didn’t help. Having no idea where to move on. :(
I’m using the latest stable version of Android Studio on Ubuntu desktop. Please don’t be hesitate to ask if any extra information is required.
Also I’ve been tried edit my native-lib.cpp into .c (Surely with the code contents changed), but wasn’t working either.
Appreciate for any help.
-
Anomalie #4495 (Nouveau) : migration 3.2.7 vers 3.3.0
24 mai 2020, par josiane alettotest 1-
j’ai installée en local un site qui était en SPIP 3.2.7 [24473] pour le migrer en SPIP 3.3.0-dev [24578].
fichier mesoptions.php avec- <span class="CodeRay"><span class="predefined">define</span>(<span class="string"><span class="delimiter">'</span><span class="content">_IMG_MAX_HEIGHT</span><span class="delimiter">'</span></span>,<span class="integer">1200</span>); <span class="comment">// largeur en pixels</span>
- <span class="predefined">define</span>(<span class="string"><span class="delimiter">'</span><span class="content">_IMG_MAX_WIDTH</span><span class="delimiter">'</span></span>, <span class="integer">1024</span>); <span class="comment">// hauteur en pixels</span>
- <span class="predefined">define</span>(<span class="string"><span class="delimiter">'</span><span class="content">_IMG_MAX_SIZE</span><span class="delimiter">'</span></span>, <span class="integer">650</span>); <span class="comment">// taille en kilo-octets</span>
- </span>
Des logos de taille superieure a _IMG_MAX_SIZE’, 650 ne sont plus dans IMG Pas non plus dans logo_erreur non plus.
par exemple rubon3 : 1630 × 648 pixels
Plugins :
Adaptive Images 1.9.2 -
Agenda 3.26.0 -
API de vérification 1.8.1 - stable
Centre image 0.10.4 - dev
Couleur de rubrique 2.3.8
Facteur 3.6.2 - stable
Formidable 3.34.3 - stable
Insérer Modèles 1.3.3 - stable
Massicot 0.8.1 -
Mini Calendrier 2.4.1 - stable
oEmbed 2.0.10 - stable
Owl Carousel 1.0.18
Carousel responsive avec support du multi-touch.
Palette 4.0.7
pdf.js 0.6.3
Picto mod avec FontAwesome 2.1.0
Saisies pour formulaires 3.11.1
SPIP Bonux 3.4.6
YAML 2.0.10
test2
Pour mieux voir J’ai recommencé installation /migration en désinstallant le plugin massicot et en le supprimant du repertoire plugin et en mettant dans mes_options.php
define(’_IMG_MAX_HEIGHT’,800) ; // largeur en pixels
define(’_IMG_MAX_WIDTH’, 500) ; // hauteur en pixels
define(’_IMG_MAX_SIZE’, 400) ; // taille en kilo-octetsje constate ; que les logos de taille >400Ko sont présent mais retaillé, rubon3 qui avait 1630 × 648 pixels a maintenant à 500 × 199 pixels 221 ko dans logo/IMG alors qu’il n’ y a pas massicot.
si je supprime ce rubon3 par logo de la rubrique et télécharge l’image originale j’obtiens une image retaillé avec du noir en plus. mais si je clique dessus l’image est retaillée mais ok et elle est bien en 500*199 dans IMG sans le noir.- les images migrées ont bien gardées leurs dimensions*.
test3
je telecharge le logo rubon3 de 1630 × 648 pixels comme un document d’un article —> il est enregistré directement en 500 × 199 pixels 221 ko . Ce mécanisme a changé, en mieux, car dans la version 3.2 j’avais un message "Les images doivent obligatoirement faire moins de 650 ko (ce fichier fait 847.5 ko)". -
ffmpeg av_read_frame "Invalid data found"
26 mai 2017, par DweebsUnitedI am using ffmpeg to cut part of a file, following the remux example provided. However, I am having issues reading from files. I am given a file descriptor as input and an output filename, and can successfully set up the output file, read the stream info, copy all the streams, etc, etc. On the first call to av_read_frame though, I get an "Invalid data found when processing input" error. I have tried this with many different video files, and have not been able to get a single one to process correctly.
Here is my code. I get no errors anywhere, except av_read_frame, which gives Invalid data found no matter what video file I give it.
char path[512];
sprintf(path, "pipe:%d", fileno(fp));
AVOutputFormat *ofmt = NULL;
AVFormatContext *ifmt_ctx = avformat_alloc_context(), *ofmt_ctx = NULL;
AVPacket pkt;
int ret, i;
av_register_all();
avcodec_register_all();
if ((ret = avformat_open_input(&ifmt_ctx, path, av_find_input_format("mp4"), NULL)) < 0) {
LOG("Could not open input file '%s'", path);
goto end;
}
if ((ret = avformat_find_stream_info(ifmt_ctx, 0)) < 0) {
LOG("Failed to retrieve input stream information", "");
goto end;
}
avformat_alloc_output_context2(&ofmt_ctx, NULL, NULL, out_filename);
if (!ofmt_ctx) {
LOG("Could not create output context\n");
ret = AVERROR_UNKNOWN;
goto end;
}
ofmt = ofmt_ctx->oformat;
for (i = 0; i < ifmt_ctx->nb_streams; i++) {
AVStream *in_stream = ifmt_ctx->streams[i];
AVStream *out_stream = avformat_new_stream(ofmt_ctx, in_stream->codec->codec);
if (!out_stream) {
LOG("Failed allocating output stream\n");
goto end;
}
ret = avcodec_parameters_copy(out_stream->codecpar, in_stream->codecpar);
if (ret < 0) {
LOG("Failed to copy context from input to output stream codec context\n");
goto end;
}
out_stream->codecpar->codec_tag = 0;
}
if (!(ofmt->flags & AVFMT_NOFILE)) {
ret = avio_open(&ofmt_ctx->pb, out_filename, AVIO_FLAG_WRITE);
if (ret < 0) {
LOG("Could not open output file '%s'", out_filename);
goto end;
}
}
ret = avformat_write_header(ofmt_ctx, NULL);
if (ret < 0) {
LOG("Error occurred when opening output file\n");
goto end;
}
// int indexs[8] = {0};
// int64_t start_from = 8*AV_TIME_BASE;
ret = av_seek_frame(ifmt_ctx, -1, from_seconds*AV_TIME_BASE, AVSEEK_FLAG_ANY);
if (ret < 0) {
LOG("Error seek\n");
goto end;
}
int64_t *dts_start_from;
int64_t *pts_start_from;
dts_start_from = (int64_t *) malloc(sizeof(int64_t) * ifmt_ctx->nb_streams);
memset(dts_start_from, 0, sizeof(int64_t) * ifmt_ctx->nb_streams);
pts_start_from = (int64_t *) malloc(sizeof(int64_t) * ifmt_ctx->nb_streams);
memset(pts_start_from, 0, sizeof(int64_t) * ifmt_ctx->nb_streams);
while (1) {
AVStream *in_stream, *out_stream;
ret = av_read_frame(ifmt_ctx, &pkt);
if (ret < 0)
break;
in_stream = ifmt_ctx->streams[pkt.stream_index];
out_stream = ofmt_ctx->streams[pkt.stream_index];
if (av_q2d(in_stream->time_base) * pkt.pts > end_seconds) {
av_packet_unref(&pkt);
break;
}
if (dts_start_from[pkt.stream_index] == 0)
dts_start_from[pkt.stream_index] = pkt.dts;
if (pts_start_from[pkt.stream_index] == 0)
pts_start_from[pkt.stream_index] = pkt.pts;
/* copy packet */
pkt.pts = ::av_rescale_q_rnd(pkt.pts - pts_start_from[pkt.stream_index], in_stream->time_base, out_stream->time_base, (AVRounding) (AV_ROUND_NEAR_INF |
AV_ROUND_PASS_MINMAX));
pkt.dts = ::av_rescale_q_rnd(pkt.dts - dts_start_from[pkt.stream_index], in_stream->time_base, out_stream->time_base, (AVRounding) (AV_ROUND_NEAR_INF |
AV_ROUND_PASS_MINMAX));
if (pkt.pts < 0) {
pkt.pts = 0;
}
if (pkt.dts < 0) {
pkt.dts = 0;
}
pkt.duration = (int) av_rescale_q((int64_t) pkt.duration, in_stream->time_base, out_stream->time_base);
pkt.pos = -1;
ret = av_interleaved_write_frame(ofmt_ctx, &pkt);
if (ret < 0) {
LOG("Error muxing packet\n");
break;
}
av_packet_unref(&pkt);
}
free(dts_start_from);
free(pts_start_from);
av_write_trailer(ofmt_ctx);
end:
LOG("END");
avformat_close_input(&ifmt_ctx);
/* close output */
if (ofmt_ctx && !(ofmt->flags & AVFMT_NOFILE))
avio_closep(&ofmt_ctx->pb);
avformat_free_context(ofmt_ctx);
if (ret < 0 && ret != AVERROR_EOF) {
LOG("-- Error occurred: %s\n", av_err2str(ret));
return 1;
}Thank you for any help, I’m still getting used to ffmpeg. Did I miss some setting on the input ? Am I not setting something up that I need to be ? This problem is really stumping me.