
Recherche avancée
Médias (2)
-
SPIP - plugins - embed code - Exemple
2 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
-
Publier une image simplement
13 avril 2011, par ,
Mis à jour : Février 2012
Langue : français
Type : Video
Autres articles (68)
-
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 (...) -
La sauvegarde automatique de canaux SPIP
1er avril 2010, parDans le cadre de la mise en place d’une plateforme ouverte, il est important pour les hébergeurs de pouvoir disposer de sauvegardes assez régulières pour parer à tout problème éventuel.
Pour réaliser cette tâche on se base sur deux plugins SPIP : Saveauto qui permet une sauvegarde régulière de la base de donnée sous la forme d’un dump mysql (utilisable dans phpmyadmin) mes_fichiers_2 qui permet de réaliser une archive au format zip des données importantes du site (les documents, les éléments (...)
Sur d’autres sites (5454)
-
How do you properly free a BitStreamFilter (bsf) without getting a double free error ?
19 janvier 2021, par Alexis WilkeI'm trying to write a C++ class handling MP4 movies via ffmpeg.


First I created a couple of functions to use with
std::unique<>()
so that way things get released even on exceptions.

However, I get a double free when I try to free the BitStreamFilter object, yet the documentation clearly says that each
av_bsf_alloc()
must be paired with anav_bsf_free()
call.



@param ctx
a pointer into which the pointer to the newly-allocated context
will be written. It must be freed withav_bsf_free()
after the
filtering is done.



Note : emphasis mine.


However, at the time I call the
avformat_close_input()
I get a double free error, even if I haven't used the two contexts for anything !? I'm thinking that there may be a packet that both allocate and both try to free. But since these two contexts are not directly connected, I really don't understand how they end up freeing something twice.

Below is code which reproduce the error (at least on an amd64 platform). Once compiled, you can just execute it. Make sure to specify a filename as in :


./ffmpeg_demuxer_test mymovie.mp4



I used the following command to compile & link the code :


$ /usr/bin/c++ -std=c++17 -DDEBUG -D_DEBUG -D_GLIBCXX_ASSERTIONS -g -O0 \
 -fsanitize=address -fsanitize=enum -fsanitize=unreachable \
 -o ffmpeg_demuxer_test ffmpeg_demuxer_test.cpp \
 -lavformat -lavcodec



Notice the
-fsanitize=...
options to capture errors such as a double free error.

Here is the code :


extern "C" {
#include <libavformat></libavformat>avformat.h>
#include <libavformat></libavformat>avio.h>
#include <libavcodec></libavcodec>avcodec.h>
}
#include <iostream>
#include <memory>


void ffmpeg_demuxer_avformat_context_free(AVFormatContext * context)
{
 if(context != nullptr) avformat_close_input(&context);
}

void ffmpeg_demuxer_av_bsf_free(AVBSFContext * context)
{
 if(context != nullptr) av_bsf_free(&context);
}


int main(int argc, char * argv [])
{
 if(argc != 2)
 {
 std::cout << "Usage: " << argv[0] << " movie.mp4" << std::endl;
 exit(1);
 }

 // init the AV libraries
 //
 av_register_all();
 avformat_network_init();

 // allocate the AVFormatContext
 //
 AVFormatContext * format_context(nullptr);
 int const r1(avformat_open_input(
 &format_context
 , argv[1]
 , nullptr // input format
 , nullptr)); // options
 if(r1 != 0
 || format_context == nullptr)
 {
 throw std::bad_alloc();
 }

 auto f_format_context = std::unique_ptr<
 AVFormatContext
 , decltype(&ffmpeg_demuxer_avformat_context_free)>(
 format_context
 , &ffmpeg_demuxer_avformat_context_free);


 // now allocate a stream
 //
 if(avformat_find_stream_info(f_format_context.get(), nullptr) < 0)
 {
 throw std::runtime_error("ffmpeg: Could not find stream info");
 }

 auto f_video_stream_index = av_find_best_stream(
 f_format_context.get()
 , AVMEDIA_TYPE_VIDEO
 , -1 // wanted stream (any)
 , -1 // related stream (none)
 , nullptr // AVCodec *
 , 0); // flags
 if(f_video_stream_index < 0)
 {
 throw std::runtime_error("ffmpeg: Could not find stream in input file");
 }
 if(static_cast<unsigned int="int">(f_video_stream_index) >= f_format_context->nb_streams)
 {
 throw std::range_error("ffmpeg: Stream index out of range");
 }

 auto f_stream = f_format_context->streams[f_video_stream_index];

 auto f_video_codec = f_stream->codecpar->codec_id;

 int f_bit_depth(0);
 switch(f_stream->codecpar->format)
 {
 case AV_PIX_FMT_YUV420P10LE:
 f_bit_depth = 10;
 break;

 case AV_PIX_FMT_YUV420P12LE:
 f_bit_depth = 12;
 break;

 default:
 f_bit_depth = 8;
 break;

 }

 bool f_mp4_h264 = f_video_codec == AV_CODEC_ID_H264 && (
 strcmp(f_format_context->iformat->long_name, "QuickTime / MOV") == 0
 || strcmp(f_format_context->iformat->long_name, "FLV (Flash Video)") == 0
 || strcmp(f_format_context->iformat->long_name, "Matroska / WebM") == 0
 );

 if(f_mp4_h264)
 {
 AVBitStreamFilter const * bsf_stream_filter(av_bsf_get_by_name("h264_mp4toannexb"));
 if(bsf_stream_filter == nullptr)
 {
 throw std::runtime_error("av_bsf_get_by_name(\"h264_mp4toannexb\") failed");
 }
 AVBSFContext * bsf_context(nullptr);
 int const r2(av_bsf_alloc(bsf_stream_filter, &bsf_context));
 if(r2 < 0
 || bsf_context == nullptr)
 {
 throw std::bad_alloc();
 }
 auto f_bsf_context = std::unique_ptr<
 AVBSFContext
 , decltype(&ffmpeg_demuxer_av_bsf_free)>(
 bsf_context
 , &ffmpeg_demuxer_av_bsf_free);
 f_bsf_context->par_in = f_stream->codecpar;
 if(av_bsf_init(f_bsf_context.get()) < 0)
 {
 throw std::runtime_error("av_bsf_init() failed");
 }
 }

 return 0;
}
</unsigned></memory></iostream>


So. Am I misreading the documentation or misusing one of the free/close function ? I don't think that the
AVBSFContext
itself gets released when I close theAVFormatContext
, but I may be mistaken ?

I won't put "C" as a tag since it will get removed even though this applies to C. It's not because I use C++ that I get a double free (i.e. it happens in the ffmpeg C library).


-
FFMPEG Conversion from GIF to video with audio, take too long
5 novembre 2020, par Mouaad Abdelghafour AITALII'm trying to convert a GIF file into 720p video and merge it with audio, the code below works fine, but it takes a long time to finish the process (depends on the audio length) :


//Converting from GIF to video is fast!

public static String makeVideo(String inputGifPath, String outputPath, int width, int height) {
 return "-y -i " + inputGifPath + " -movflags faststart -pix_fmt yuv420p -vf crop=" + width + ":" + height + ":0:40,scale=1280:720,setsar=1 " + outputPath;
 }



//Merging video with audio takes a lot of time!

public static String addAudio(String audioNoSpace, String inputVideoPath, String outputVideoPath) {
 return "-stream_loop -1 -i " + inputVideoPath + " -i " + audioNoSpace + " -shortest -map 0:v:0 -map 1:a:0 -y " + outputVideoPath;
}



FFMPEG commands :


-y -i file.gif -movflags faststart -pix_fmt yuv420p -vf crop=540:250:0:40,scale=1280:720,setsar=1 video.mp4

-stream_loop -1 -i video.mp4 -i audio.wav -shortest -map 0:v:0 -map 1:a:0 -y final_video.mp4



Part of log :


2020-11-05 19:50:33.092 5721-6212/maa.slowed_reverb W/mobile-ffmpeg: [graph 0 input from stream 0:0 @ 0x70b2dedb00] sws_param option is deprecated and ignored
2020-11-05 19:50:33.112 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: Output #0, mp4, to '/storage/emulated/0/Movies/folder/folder_1604602231893.mp4':
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: Metadata:
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: major_brand : 
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: isom
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: minor_version : 
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: 512
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: compatible_brands: 
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: isomiso2mp41
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: comment : 
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: Optimized with ezgif.com
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: encoder : 
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: Lavf58.48.100
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: Stream #0:0
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: (und)
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: : Video: mpeg4 (mp4v / 0x7634706D), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: , 
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: 12.50 fps, 
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: 12800 tbn, 
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: 12.50 tbc
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: (default)
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: Metadata:
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: handler_name : 
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: VideoHandler
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: encoder : 
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: Lavc58.96.100 mpeg4
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: Side data:
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: 
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: cpb: 
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: bitrate max/min/avg: 0/0/200000 buffer size: 0 
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: vbv_delay: N/A
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: Stream #0:1
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: : Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: Metadata:
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: encoder : 
2020-11-05 19:50:33.113 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: Lavc58.96.100 aac
2020-11-05 19:50:33.462 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 17 fps=0.0 q=4.8 size= 0kB time=00:00:01.28 bitrate= 0.3kbits/s speed=3.27x 
2020-11-05 19:50:33.965 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 54 fps=0.0 q=28.4 size= 256kB time=00:00:04.24 bitrate= 494.7kbits/s speed=4.74x 
2020-11-05 19:50:34.468 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 85 fps= 61 q=24.8 size= 512kB time=00:00:06.72 bitrate= 624.2kbits/s speed=4.81x 
2020-11-05 19:50:34.973 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 117 fps= 61 q=31.0 size= 512kB time=00:00:09.28 bitrate= 452.0kbits/s speed=4.88x 
2020-11-05 19:50:35.478 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 150 fps= 62 q=31.0 size= 768kB time=00:00:11.92 bitrate= 527.8kbits/s speed=4.96x 
2020-11-05 19:50:35.976 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 184 fps= 63 q=31.0 size= 1024kB time=00:00:14.64 bitrate= 573.0kbits/s speed=5.04x 
2020-11-05 19:50:36.478 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 217 fps= 64 q=24.8 size= 1024kB time=00:00:17.28 bitrate= 485.5kbits/s speed=5.07x 
2020-11-05 19:50:36.994 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 249 fps= 63 q=31.0 size= 1280kB time=00:00:19.84 bitrate= 528.5kbits/s speed=5.06x 
2020-11-05 19:50:37.511 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 283 fps= 64 q=31.0 size= 1536kB time=00:00:22.56 bitrate= 557.8kbits/s speed=5.08x 
2020-11-05 19:50:38.012 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 313 fps= 63 q=24.8 size= 1536kB time=00:00:24.96 bitrate= 504.1kbits/s speed=5.05x 
2020-11-05 19:50:38.521 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 345 fps= 63 q=31.0 size= 1792kB time=00:00:27.52 bitrate= 533.4kbits/s speed=5.05x 
2020-11-05 19:50:39.026 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 377 fps= 63 q=31.0 size= 1792kB time=00:00:30.08 bitrate= 488.0kbits/s speed=5.05x 
2020-11-05 19:50:39.534 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 411 fps= 64 q=31.0 size= 2048kB time=00:00:32.80 bitrate= 511.5kbits/s speed=5.07x 
2020-11-05 19:50:40.055 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 443 fps= 63 q=31.0 size= 2304kB time=00:00:35.36 bitrate= 533.8kbits/s speed=5.06x 
2020-11-05 19:50:40.565 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 476 fps= 64 q=31.0 size= 2304kB time=00:00:38.00 bitrate= 496.7kbits/s speed=5.08x 
2020-11-05 19:50:41.056 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 506 fps= 63 q=31.0 size= 2560kB time=00:00:40.40 bitrate= 519.1kbits/s speed=5.06x 
2020-11-05 19:50:41.560 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 538 fps= 63 q=31.0 size= 2560kB time=00:00:42.96 bitrate= 488.2kbits/s speed=5.06x 
2020-11-05 19:50:42.068 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 571 fps= 63 q=31.0 size= 2816kB time=00:00:45.60 bitrate= 505.9kbits/s speed=5.07x 
2020-11-05 19:50:42.574 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 602 fps= 63 q=31.0 size= 3072kB time=00:00:48.08 bitrate= 523.4kbits/s speed=5.06x 
2020-11-05 19:50:43.087 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 636 fps= 64 q=31.0 size= 3072kB time=00:00:50.80 bitrate= 495.4kbits/s speed=5.08x 
2020-11-05 19:50:43.586 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 663 fps= 63 q=31.0 size= 3328kB time=00:00:52.96 bitrate= 514.8kbits/s speed=5.04x 
2020-11-05 19:50:44.086 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 696 fps= 63 q=31.0 size= 3328kB time=00:00:55.63 bitrate= 490.0kbits/s speed=5.05x 
2020-11-05 19:50:44.595 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 728 fps= 63 q=31.0 size= 3584kB time=00:00:58.16 bitrate= 504.8kbits/s speed=5.05x 
2020-11-05 19:50:45.101 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 761 fps= 63 q=31.0 size= 3840kB time=00:01:00.80 bitrate= 517.4kbits/s speed=5.05x 
2020-11-05 19:50:45.602 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 794 fps= 63 q=31.0 size= 3840kB time=00:01:03.44 bitrate= 495.9kbits/s speed=5.06x 
2020-11-05 19:50:46.103 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 827 fps= 63 q=31.0 size= 4096kB time=00:01:06.08 bitrate= 507.8kbits/s speed=5.07x 
2020-11-05 19:50:46.604 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 859 fps= 63 q=31.0 size= 4096kB time=00:01:08.64 bitrate= 488.9kbits/s speed=5.07x 
2020-11-05 19:50:47.116 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 890 fps= 63 q=31.0 size= 4352kB time=00:01:11.12 bitrate= 501.3kbits/s speed=5.06x 
2020-11-05 19:50:47.619 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 924 fps= 64 q=31.0 size= 4608kB time=00:01:13.84 bitrate= 511.2kbits/s speed=5.08x 
2020-11-05 19:50:48.120 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 954 fps= 63 q=31.0 size= 4608kB time=00:01:16.24 bitrate= 495.1kbits/s speed=5.07x 
2020-11-05 19:50:48.631 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 986 fps= 63 q=31.0 size= 4864kB time=00:01:18.80 bitrate= 505.7kbits/s speed=5.06x 
2020-11-05 19:50:49.143 5721-6212/maa.slowed_reverb I/mobile-ffmpeg: frame= 1017 fps= 63 q=31.0 size= 4864kB time=00:01:21.28 bitrate= 490.2kbits/s speed=5.06x



-
Rotate Video- Could not write header for output file #0 (incorrect codec parameters ?)
26 août 2018, par varmashrivastavaI am using below command to rotate video-
{"-y", "-ss", "" + startMs / 1000, "-t", "" + (endMs - startMs) / 1000, "-i", inputPath, "-vf", "transpose=" + type,"-c:a", "copy", outputPath}
I am getting below failure message in Android Oreo-
"ffmpeg version n3.0.1 Copyright (c) 2000-2016 the FFmpeg developers\n
built with gcc 4.8 (GCC)\n configuration : —target-os=linux
—cross-prefix=/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/bin/arm-linux-androideabi-
—arch=arm —cpu=cortex-a8 —enable-runtime-cpudetect —sysroot=/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/sysroot
—enable-pic —enable-libx264 —enable-libass —enable-libfreetype —enable-libfribidi —enable-libmp3lame —enable-fontconfig —enable-pthreads —disable-debug —disable-ffserver —enable-version3 —enable-hardcoded-tables —disable-ffplay —disable-ffprobe —enable-gpl —enable-yasm —disable-doc —disable-shared —enable-static —pkg-config=/home/vagrant/SourceCode/ffmpeg-android/ffmpeg-pkg-config —prefix=/home/vagrant/SourceCode/ffmpeg-android/build/armeabi-v7a —extra-cflags=’-I/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/include
-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all’ —extra-ldflags=’-L/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/lib
-Wl,-z,relro -Wl,-z,now -pie’ —extra-libs=’-lpng -lexpat -lm’ —extra-cxxflags=\n libavutil 55. 17.103 / 55. 17.103\n libavcodec 57. 24.102 / 57. 24.102\n libavformat 57. 25.100 /
57. 25.100\n libavdevice 57. 0.101 / 57. 0.101\n libavfilter 6. 31.100 / 6. 31.100\n libswscale 4. 0.100 / 4. 0.100\n libswresample 2. 0.101 / 2. 0.101\n libpostproc 54. 0.100 /
54. 0.100\nInput #0, mov,mp4,m4a,3gp,3g2,mj2, from ’/storage/emulated/0/Download/dolbycanyon.3gp’ :\n Metadata :\n
major_brand : 3gp4\n minor_version : 512\n
compatible_brands : isomiso23gp4\n Duration : 00:00:38.07, start :
0.006250, bitrate : 402 kb/s\n Stream #0:0(und) : Video : h263 (s263 / 0x33363273), yuv420p, 704x576 [SAR 12:11 DAR 4:3], 384 kb/s, 29.97
fps, 29.97 tbr, 30k tbn, 29.97 tbc (default)\n Metadata :\n
handler_name : VideoHandler\n Stream #0:1(und) : Audio : amr_nb
(samr / 0x726D6173), 8000 Hz, mono, flt, 12 kb/s (default)\n
Metadata :\n handler_name : SoundHandler\n[libx264 @
0xf64e5400] using SAR=11/12\n[libx264 @ 0xf64e5400] using cpu
capabilities : none !\n[libx264 @ 0xf64e5400] profile High, level
3.1\n[libx264 @ 0xf64e5400] 264 - core 148 - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - http://www.videolan.org/x264.html - options :
cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1
psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1
8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2
threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1
interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2
b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250
keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf
mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40
aq=1:1.00\n[mp4 @ 0xf64a8600] Could not find tag for codec amr_nb in
stream #1, codec not currently supported in container\nOutput #0, mp4,
to ’/storage/emulated/0/Movies/rotate_video4.mp4’ :\n Metadata :\n
major_brand : 3gp4\n minor_version : 512\n
compatible_brands : isomiso23gp4\n encoder : Lavf57.25.100\n
Stream #0:0(und) : Video : h264 (libx264) ([33][0][0][0] / 0x0021),
yuv420p, 576x704 [SAR 11:12 DAR 3:4], q=-1—1, 29.97 fps, 30k tbn,
29.97 tbc (default)\n Metadata :\n handler_name : VideoHandler\n encoder : Lavc57.24.102 libx264\n Side
data :\n unknown side data type 10 (24 bytes)\n Stream
0:1(und) : Audio : amr_nb (samr / 0x726D6173), 8000 Hz, mono, 12 kb/s (default)\n Metadata :\n handler_name : SoundHandler\nStream
mapping :\n Stream #0:0 -> #0:0 (h263 (native) -> h264 (libx264))\n
Stream #0:1 -> #0:1 (copy)\nCould not write header for output file #0
(incorrect codec parameters ?) : Invalid argument\n"Why am i getting this error and how can i resolve it ?