
Recherche avancée
Médias (1)
-
Rennes Emotion Map 2010-11
19 octobre 2011, par
Mis à jour : Juillet 2013
Langue : français
Type : Texte
Autres articles (23)
-
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir -
Submit enhancements and plugins
13 avril 2011If you have developed a new extension to add one or more useful features to MediaSPIP, let us know and its integration into the core MedisSPIP functionality will be considered.
You can use the development discussion list to request for help with creating a plugin. As MediaSPIP is based on SPIP - or you can use the SPIP discussion list SPIP-Zone. -
Contribute to translation
13 avril 2011You can help us to improve the language used in the software interface to make MediaSPIP more accessible and user-friendly. You can also translate the interface into any language that allows it to spread to new linguistic communities.
To do this, we use the translation interface of SPIP where the all the language modules of MediaSPIP are available. Just subscribe to the mailing list and request further informantion on translation.
MediaSPIP is currently available in French and English (...)
Sur d’autres sites (4441)
-
How to fix a segmentaion fault in a C program ? [closed]
13 janvier 2012, par ipegasusPossible Duplicate :
Segmentation faultCurrently I am upgrading an open source program used for HTTP streaming. It needs to support the latest FFMPEG.
The code compiles fine with no warnings although I am getting a segmentation fault error.
I would like to know how to fix the issue ? and / or the best way to debug ? Please find attached a portion of the code due to size. I will try to add the project to github :) Thanks in advance !Sample Usage
# segmenter --i out.ts --l 10 --o stream.m3u8 --d segments --f stream
Makefile
FFLIBS=`pkg-config --libs libavformat libavcodec libavutil`
FFFLAGS=`pkg-config --cflags libavformat libavcodec libavutil`
all:
gcc -Wall -g segmenter.c -o segmenter ${FFFLAGS} ${FFLIBS}segmenter.c
/*
* Copyright (c) 2009 Chase Douglas
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License version 2
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#include
#include
#include
#include
#include
#include "libavformat/avformat.h"
#include "libavformat/avio.h"
#include <sys></sys>stat.h>
#include "segmenter.h"
#include "libavformat/avformat.h"
#define IMAGE_ID3_SIZE 9171
void printUsage() {
fprintf(stderr, "\nExample: segmenter --i infile --d baseDir --f baseFileName --o playListFile.m3u8 --l 10 \n");
fprintf(stderr, "\nOptions: \n");
fprintf(stderr, "--i <infile>.\n");
fprintf(stderr, "--o <outfile>.\n");
fprintf(stderr, "--d basedir, the base directory for files.\n");
fprintf(stderr, "--f baseFileName, output files will be baseFileName-#.\n");
fprintf(stderr, "--l segment length, the length of each segment.\n");
fprintf(stderr, "--a, audio only decode for < 64k streams.\n");
fprintf(stderr, "--v, video only decode for < 64k streams.\n");
fprintf(stderr, "--version, print version details and exit.\n");
fprintf(stderr, "\n\n");
}
void ffmpeg_version() {
// output build and version numbers
fprintf(stderr, " libavutil version: %s\n", AV_STRINGIFY(LIBAVUTIL_VERSION));
fprintf(stderr, " libavutil build: %d\n", LIBAVUTIL_BUILD);
fprintf(stderr, " libavcodec version: %s\n", AV_STRINGIFY(LIBAVCODEC_VERSION));
fprintf(stdout, " libavcodec build: %d\n", LIBAVCODEC_BUILD);
fprintf(stderr, " libavformat version: %s\n", AV_STRINGIFY(LIBAVFORMAT_VERSION));
fprintf(stderr, " libavformat build: %d\n", LIBAVFORMAT_BUILD);
fprintf(stderr, " built on " __DATE__ " " __TIME__);
#ifdef __GNUC__
fprintf(stderr, ", gcc: " __VERSION__ "\n");
#else
fprintf(stderr, ", using a non-gcc compiler\n");
#endif
}
static AVStream *add_output_stream(AVFormatContext *output_format_context, AVStream *input_stream) {
AVCodecContext *input_codec_context;
AVCodecContext *output_codec_context;
AVStream *output_stream;
output_stream = avformat_new_stream(output_format_context, 0);
if (!output_stream) {
fprintf(stderr, "Segmenter error: Could not allocate stream\n");
exit(1);
}
input_codec_context = input_stream->codec;
output_codec_context = output_stream->codec;
output_codec_context->codec_id = input_codec_context->codec_id;
output_codec_context->codec_type = input_codec_context->codec_type;
output_codec_context->codec_tag = input_codec_context->codec_tag;
output_codec_context->bit_rate = input_codec_context->bit_rate;
output_codec_context->extradata = input_codec_context->extradata;
output_codec_context->extradata_size = input_codec_context->extradata_size;
if (av_q2d(input_codec_context->time_base) * input_codec_context->ticks_per_frame > av_q2d(input_stream->time_base) && av_q2d(input_stream->time_base) < 1.0 / 1000) {
output_codec_context->time_base = input_codec_context->time_base;
output_codec_context->time_base.num *= input_codec_context->ticks_per_frame;
} else {
output_codec_context->time_base = input_stream->time_base;
}
switch (input_codec_context->codec_type) {
#ifdef USE_OLD_FFMPEG
case CODEC_TYPE_AUDIO:
#else
case AVMEDIA_TYPE_AUDIO:
#endif
output_codec_context->channel_layout = input_codec_context->channel_layout;
output_codec_context->sample_rate = input_codec_context->sample_rate;
output_codec_context->channels = input_codec_context->channels;
output_codec_context->frame_size = input_codec_context->frame_size;
if ((input_codec_context->block_align == 1 && input_codec_context->codec_id == CODEC_ID_MP3) || input_codec_context->codec_id == CODEC_ID_AC3) {
output_codec_context->block_align = 0;
} else {
output_codec_context->block_align = input_codec_context->block_align;
}
break;
#ifdef USE_OLD_FFMPEG
case CODEC_TYPE_VIDEO:
#else
case AVMEDIA_TYPE_VIDEO:
#endif
output_codec_context->pix_fmt = input_codec_context->pix_fmt;
output_codec_context->width = input_codec_context->width;
output_codec_context->height = input_codec_context->height;
output_codec_context->has_b_frames = input_codec_context->has_b_frames;
if (output_format_context->oformat->flags & AVFMT_GLOBALHEADER) {
output_codec_context->flags |= CODEC_FLAG_GLOBAL_HEADER;
}
break;
default:
break;
}
return output_stream;
}
int write_index_file(const char index[], const char tmp_index[], const unsigned int planned_segment_duration, const unsigned int actual_segment_duration[],
const char output_directory[], const char output_prefix[], const char output_file_extension[],
const unsigned int first_segment, const unsigned int last_segment) {
FILE *index_fp;
char *write_buf;
unsigned int i;
index_fp = fopen(tmp_index, "w");
if (!index_fp) {
fprintf(stderr, "Could not open temporary m3u8 index file (%s), no index file will be created\n", tmp_index);
return -1;
}
write_buf = malloc(sizeof (char) * 1024);
if (!write_buf) {
fprintf(stderr, "Could not allocate write buffer for index file, index file will be invalid\n");
fclose(index_fp);
return -1;
}
unsigned int maxDuration = planned_segment_duration;
for (i = first_segment; i <= last_segment; i++)
if (actual_segment_duration[i] > maxDuration)
maxDuration = actual_segment_duration[i];
snprintf(write_buf, 1024, "#EXTM3U\n#EXT-X-TARGETDURATION:%u\n", maxDuration);
if (fwrite(write_buf, strlen(write_buf), 1, index_fp) != 1) {
fprintf(stderr, "Could not write to m3u8 index file, will not continue writing to index file\n");
free(write_buf);
fclose(index_fp);
return -1;
}
for (i = first_segment; i <= last_segment; i++) {
snprintf(write_buf, 1024, "#EXTINF:%u,\n%s-%u%s\n", actual_segment_duration[i], output_prefix, i, output_file_extension);
if (fwrite(write_buf, strlen(write_buf), 1, index_fp) != 1) {
fprintf(stderr, "Could not write to m3u8 index file, will not continue writing to index file\n");
free(write_buf);
fclose(index_fp);
return -1;
}
}
snprintf(write_buf, 1024, "#EXT-X-ENDLIST\n");
if (fwrite(write_buf, strlen(write_buf), 1, index_fp) != 1) {
fprintf(stderr, "Could not write last file and endlist tag to m3u8 index file\n");
free(write_buf);
fclose(index_fp);
return -1;
}
free(write_buf);
fclose(index_fp);
return rename(tmp_index, index);
}
int main(int argc, const char *argv[]) {
//input parameters
char inputFilename[MAX_FILENAME_LENGTH], playlistFilename[MAX_FILENAME_LENGTH], baseDirName[MAX_FILENAME_LENGTH], baseFileName[MAX_FILENAME_LENGTH];
char baseFileExtension[5]; //either "ts", "aac" or "mp3"
int segmentLength, outputStreams, verbosity, version;
char currentOutputFileName[MAX_FILENAME_LENGTH];
char tempPlaylistName[MAX_FILENAME_LENGTH];
//these are used to determine the exact length of the current segment
double prev_segment_time = 0;
double segment_time;
unsigned int actual_segment_durations[2048];
double packet_time = 0;
//new variables to keep track of output size
double output_bytes = 0;
unsigned int output_index = 1;
AVOutputFormat *ofmt;
AVFormatContext *ic = NULL;
AVFormatContext *oc;
AVStream *video_st = NULL;
AVStream *audio_st = NULL;
AVCodec *codec;
int video_index;
int audio_index;
unsigned int first_segment = 1;
unsigned int last_segment = 0;
int write_index = 1;
int decode_done;
int ret;
int i;
unsigned char id3_tag[128];
unsigned char * image_id3_tag;
size_t id3_tag_size = 73;
int newFile = 1; //a boolean value to flag when a new file needs id3 tag info in it
if (parseCommandLine(inputFilename, playlistFilename, baseDirName, baseFileName, baseFileExtension, &outputStreams, &segmentLength, &verbosity, &version, argc, argv) != 0)
return 0;
if (version) {
ffmpeg_version();
return 0;
}
fprintf(stderr, "%s %s\n", playlistFilename, tempPlaylistName);
image_id3_tag = malloc(IMAGE_ID3_SIZE);
if (outputStreams == OUTPUT_STREAM_AUDIO)
build_image_id3_tag(image_id3_tag);
build_id3_tag((char *) id3_tag, id3_tag_size);
snprintf(tempPlaylistName, strlen(playlistFilename) + strlen(baseDirName) + 1, "%s%s", baseDirName, playlistFilename);
strncpy(playlistFilename, tempPlaylistName, strlen(tempPlaylistName));
strncpy(tempPlaylistName, playlistFilename, MAX_FILENAME_LENGTH);
strncat(tempPlaylistName, ".", 1);
//decide if this is an aac file or a mpegts file.
//postpone deciding format until later
/* ifmt = av_find_input_format("mpegts");
if (!ifmt)
{
fprintf(stderr, "Could not find MPEG-TS demuxer.\n");
exit(1);
} */
av_log_set_level(AV_LOG_DEBUG);
av_register_all();
ret = avformat_open_input(&ic, inputFilename, NULL, NULL);
if (ret != 0) {
fprintf(stderr, "Could not open input file %s. Error %d.\n", inputFilename, ret);
exit(1);
}
if (avformat_find_stream_info(ic, NULL) < 0) {
fprintf(stderr, "Could not read stream information.\n");
exit(1);
}
oc = avformat_alloc_context();
if (!oc) {
fprintf(stderr, "Could not allocate output context.");
exit(1);
}
video_index = -1;
audio_index = -1;
for (i = 0; i < ic->nb_streams && (video_index < 0 || audio_index < 0); i++) {
switch (ic->streams[i]->codec->codec_type) {
#ifdef USE_OLD_FFMPEG
case CODEC_TYPE_VIDEO:
#else
case AVMEDIA_TYPE_VIDEO:
#endif
video_index = i;
ic->streams[i]->discard = AVDISCARD_NONE;
if (outputStreams & OUTPUT_STREAM_VIDEO)
video_st = add_output_stream(oc, ic->streams[i]);
break;
#ifdef USE_OLD_FFMPEG
case CODEC_TYPE_AUDIO:
#else
case AVMEDIA_TYPE_AUDIO:
#endif
audio_index = i;
ic->streams[i]->discard = AVDISCARD_NONE;
if (outputStreams & OUTPUT_STREAM_AUDIO)
audio_st = add_output_stream(oc, ic->streams[i]);
break;
default:
ic->streams[i]->discard = AVDISCARD_ALL;
break;
}
}
if (video_index == -1) {
fprintf(stderr, "Stream must have video component.\n");
exit(1);
}
//now that we know the audio and video output streams
//we can decide on an output format.
if (outputStreams == OUTPUT_STREAM_AUDIO) {
//the audio output format should be the same as the audio input format
switch (ic->streams[audio_index]->codec->codec_id) {
case CODEC_ID_MP3:
fprintf(stderr, "Setting output audio to mp3.");
strncpy(baseFileExtension, ".mp3", strlen(".mp3"));
ofmt = av_guess_format("mp3", NULL, NULL);
break;
case CODEC_ID_AAC:
fprintf(stderr, "Setting output audio to aac.");
ofmt = av_guess_format("adts", NULL, NULL);
break;
default:
fprintf(stderr, "Codec id %d not supported.\n", ic->streams[audio_index]->id);
}
if (!ofmt) {
fprintf(stderr, "Could not find audio muxer.\n");
exit(1);
}
} else {
ofmt = av_guess_format("mpegts", NULL, NULL);
if (!ofmt) {
fprintf(stderr, "Could not find MPEG-TS muxer.\n");
exit(1);
}
}
oc->oformat = ofmt;
if (outputStreams & OUTPUT_STREAM_VIDEO && oc->oformat->flags & AVFMT_GLOBALHEADER) {
oc->flags |= CODEC_FLAG_GLOBAL_HEADER;
}
/* Deprecated: pass the options to avformat_write_header directly.
if (av_set_parameters(oc, NULL) < 0) {
fprintf(stderr, "Invalid output format parameters.\n");
exit(1);
}
*/
av_dump_format(oc, 0, baseFileName, 1);
//open the video codec only if there is video data
if (video_index != -1) {
if (outputStreams & OUTPUT_STREAM_VIDEO)
codec = avcodec_find_decoder(video_st->codec->codec_id);
else
codec = avcodec_find_decoder(ic->streams[video_index]->codec->codec_id);
if (!codec) {
fprintf(stderr, "Could not find video decoder, key frames will not be honored.\n");
}
if (outputStreams & OUTPUT_STREAM_VIDEO)
ret = avcodec_open2(video_st->codec, codec, NULL);
else
avcodec_open2(ic->streams[video_index]->codec, codec, NULL);
if (ret < 0) {
fprintf(stderr, "Could not open video decoder, key frames will not be honored.\n");
}
}
snprintf(currentOutputFileName, strlen(baseDirName) + strlen(baseFileName) + strlen(baseFileExtension) + 10, "%s%s-%u%s", baseDirName, baseFileName, output_index++, baseFileExtension);
if (avio_open(&oc->pb, currentOutputFileName, URL_WRONLY) < 0) {
fprintf(stderr, "Could not open '%s'.\n", currentOutputFileName);
exit(1);
}
newFile = 1;
int r = avformat_write_header(oc,NULL);
if (r) {
fprintf(stderr, "Could not write mpegts header to first output file.\n");
debugReturnCode(r);
exit(1);
}
//no segment info is written here. This just creates the shell of the playlist file
write_index = !write_index_file(playlistFilename, tempPlaylistName, segmentLength, actual_segment_durations, baseDirName, baseFileName, baseFileExtension, first_segment, last_segment);
do {
AVPacket packet;
decode_done = av_read_frame(ic, &packet);
if (decode_done < 0) {
break;
}
if (av_dup_packet(&packet) < 0) {
fprintf(stderr, "Could not duplicate packet.");
av_free_packet(&packet);
break;
}
//this time is used to check for a break in the segments
// if (packet.stream_index == video_index && (packet.flags & PKT_FLAG_KEY))
// {
// segment_time = (double)video_st->pts.val * video_st->time_base.num / video_st->time_base.den;
// }
#if USE_OLD_FFMPEG
if (packet.stream_index == video_index && (packet.flags & PKT_FLAG_KEY))
#else
if (packet.stream_index == video_index && (packet.flags & AV_PKT_FLAG_KEY))
#endif
{
segment_time = (double) packet.pts * ic->streams[video_index]->time_base.num / ic->streams[video_index]->time_base.den;
}
// else if (video_index < 0)
// {
// segment_time = (double)audio_st->pts.val * audio_st->time_base.num / audio_st->time_base.den;
// }
//get the most recent packet time
//this time is used when the time for the final segment is printed. It may not be on the edge of
//of a keyframe!
if (packet.stream_index == video_index)
packet_time = (double) packet.pts * ic->streams[video_index]->time_base.num / ic->streams[video_index]->time_base.den; //(double)video_st->pts.val * video_st->time_base.num / video_st->time_base.den;
else if (outputStreams & OUTPUT_STREAM_AUDIO)
packet_time = (double) audio_st->pts.val * audio_st->time_base.num / audio_st->time_base.den;
else
continue;
//start looking for segment splits for videos one half second before segment duration expires. This is because the
//segments are split on key frames so we cannot expect all segments to be split exactly equally.
if (segment_time - prev_segment_time >= segmentLength - 0.5) {
fprintf(stderr, "looking to print index file at time %lf\n", segment_time);
avio_flush(oc->pb);
avio_close(oc->pb);
if (write_index) {
actual_segment_durations[++last_segment] = (unsigned int) rint(segment_time - prev_segment_time);
write_index = !write_index_file(playlistFilename, tempPlaylistName, segmentLength, actual_segment_durations, baseDirName, baseFileName, baseFileExtension, first_segment, last_segment);
fprintf(stderr, "Writing index file at time %lf\n", packet_time);
}
struct stat st;
stat(currentOutputFileName, &st);
output_bytes += st.st_size;
snprintf(currentOutputFileName, strlen(baseDirName) + strlen(baseFileName) + strlen(baseFileExtension) + 10, "%s%s-%u%s", baseDirName, baseFileName, output_index++, baseFileExtension);
if (avio_open(&oc->pb, currentOutputFileName, URL_WRONLY) < 0) {
fprintf(stderr, "Could not open '%s'\n", currentOutputFileName);
break;
}
newFile = 1;
prev_segment_time = segment_time;
}
if (outputStreams == OUTPUT_STREAM_AUDIO && packet.stream_index == audio_index) {
if (newFile && outputStreams == OUTPUT_STREAM_AUDIO) {
//add id3 tag info
//fprintf(stderr, "adding id3tag to file %s\n", currentOutputFileName);
//printf("%lf %lld %lld %lld %lld %lld %lf\n", segment_time, audio_st->pts.val, audio_st->cur_dts, audio_st->cur_pkt.pts, packet.pts, packet.dts, packet.dts * av_q2d(ic->streams[audio_index]->time_base) );
fill_id3_tag((char*) id3_tag, id3_tag_size, packet.dts);
avio_write(oc->pb, id3_tag, id3_tag_size);
avio_write(oc->pb, image_id3_tag, IMAGE_ID3_SIZE);
avio_flush(oc->pb);
newFile = 0;
}
packet.stream_index = 0; //only one stream in audio only segments
ret = av_interleaved_write_frame(oc, &packet);
} else if (outputStreams & OUTPUT_STREAM_VIDEO) {
if (newFile) {
//fprintf(stderr, "New File: %lld %lld %lld\n", packet.pts, video_st->pts.val, audio_st->pts.val);
//printf("%lf %lld %lld %lld %lld %lld %lf\n", segment_time, audio_st->pts.val, audio_st->cur_dts, audio_st->cur_pkt.pts, packet.pts, packet.dts, packet.dts * av_q2d(ic->streams[audio_index]->time_base) );
newFile = 0;
}
if (outputStreams == OUTPUT_STREAM_VIDEO)
ret = av_write_frame(oc, &packet);
else
ret = av_interleaved_write_frame(oc, &packet);
}
if (ret < 0) {
fprintf(stderr, "Warning: Could not write frame of stream.\n");
} else if (ret > 0) {
fprintf(stderr, "End of stream requested.\n");
av_free_packet(&packet);
break;
}
av_free_packet(&packet);
} while (!decode_done);
//make sure all packets are written and then close the last file.
avio_flush(oc->pb);
av_write_trailer(oc);
if (video_st && video_st->codec)
avcodec_close(video_st->codec);
if (audio_st && audio_st->codec)
avcodec_close(audio_st->codec);
for (i = 0; i < oc->nb_streams; i++) {
av_freep(&oc->streams[i]->codec);
av_freep(&oc->streams[i]);
}
avio_close(oc->pb);
av_free(oc);
struct stat st;
stat(currentOutputFileName, &st);
output_bytes += st.st_size;
if (write_index) {
actual_segment_durations[++last_segment] = (unsigned int) rint(packet_time - prev_segment_time);
//make sure that the last segment length is not zero
if (actual_segment_durations[last_segment] == 0)
actual_segment_durations[last_segment] = 1;
write_index_file(playlistFilename, tempPlaylistName, segmentLength, actual_segment_durations, baseDirName, baseFileName, baseFileExtension, first_segment, last_segment);
}
write_stream_size_file(baseDirName, baseFileName, output_bytes * 8 / segment_time);
return 0;
}
</outfile></infile> -
Resize the video
8 juin 2016, par Android devI have a requirement for video size before upload on the server and would like to resize the video to make sure it will not go the threshold.
So far I ended up with this command :
ffmpeg -y -i E:\test3.mp4 -s 640*480 -r 15 -aspect 3:4 -ab 12288 -vcodec mpeg4 -b 2097152 E:\debug_video.mp4
The issues with this command :
- is it changes aspect ratio of the video
- it works too slow (30 seconds for 12 seconds 24mb video on Nexus 5)The best solution so far for the first issue is to check the video resolution first and only than run the ffmpeg.
Do you know how to do that with help of ffmpeg as two separate commands or as a single one ? Do you know how to make it faster ? Thank you in advance
UPDATE
The console output is below. Please let me know if you would like to get console output foronProgress
callbackadb -s 07f0f4ac01897da5 logcat "ffmpeg:*" "*:S"
06-08 17:43:29.589 20835 20835 D ffmpeg : FFmpeg:onProgress: ffmpeg version n3.
0.1 Copyright (c) 2000-2016 the FFmpeg developers
06-08 17:43:29.589 20835 20835 D ffmpeg : FFmpeg:onProgress: built with gcc 4
.8 (GCC)
06-08 17:43:29.592 20835 20835 D ffmpeg : FFmpeg:onProgress: configuration: -
-target-os=linux --cross-prefix=/home/vagrant/SourceCode/ffmpeg-android/toolchai
n-android/bin/arm-linux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime
-cpudetect --sysroot=/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/s
ysroot --enable-pic --enable-libx264 --enable-libass --enable-libfreetype --enab
le-libfribidi --enable-libmp3lame --enable-fontconfig --enable-pthreads --disabl
e-debug --disable-ffserver --enable-version3 --enable-hardcoded-tables --disable
-ffplay --disable-ffprobe --enable-gpl --enable-yasm --disable-doc --disable-sha
red --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/includ
e -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-a
ll' --extra-ldflags='-L/home/vagrant/SourceCode/ffmpeg-android/toolchain-android
/lib -Wl,-z,relro -Wl,-z,now -pie' --extra-libs='-lpng -lexpat -lm' --extra-cxxf
lags=
06-08 17:43:29.600 20835 20835 D ffmpeg : FFmpeg:onProgress: libavutil 5
5. 17.103 / 55. 17.103
06-08 17:43:29.600 20835 20835 D ffmpeg : FFmpeg:onProgress: libavcodec 5
7. 24.102 / 57. 24.102
06-08 17:43:29.600 20835 20835 D ffmpeg : FFmpeg:onProgress: libavformat 5
7. 25.100 / 57. 25.100
06-08 17:43:29.600 20835 20835 D ffmpeg : FFmpeg:onProgress: libavdevice 5
7. 0.101 / 57. 0.101
06-08 17:43:29.600 20835 20835 D ffmpeg : FFmpeg:onProgress: libavfilter
6. 31.100 / 6. 31.100
06-08 17:43:29.600 20835 20835 D ffmpeg : FFmpeg:onProgress: libswscale
4. 0.100 / 4. 0.100
06-08 17:43:29.600 20835 20835 D ffmpeg : FFmpeg:onProgress: libswresample
2. 0.101 / 2. 0.101
06-08 17:43:29.600 20835 20835 D ffmpeg : FFmpeg:onProgress: libpostproc 5
4. 0.100 / 54. 0.100
06-08 17:43:29.885 20835 20835 D ffmpeg : FFmpeg:onProgress: Input #0, mov,mp4,
m4a,3gp,3g2,mj2, from '/storage/emulated/0/Pictures/test2.mp4':
06-08 17:43:29.885 20835 20835 D ffmpeg : FFmpeg:onProgress: Metadata:
06-08 17:43:29.885 20835 20835 D ffmpeg : FFmpeg:onProgress: major_brand
: mp42
06-08 17:43:29.885 20835 20835 D ffmpeg : FFmpeg:onProgress: minor_version
: 0
06-08 17:43:29.885 20835 20835 D ffmpeg : FFmpeg:onProgress: compatible_bra
nds: isommp42
06-08 17:43:29.886 20835 20835 D ffmpeg : FFmpeg:onProgress: creation_time
: 2016-06-02 09:20:58
06-08 17:43:29.886 20835 20835 D ffmpeg : FFmpeg:onProgress: com.android.ve
rsion: 6.0.1
06-08 17:43:29.886 20835 20835 D ffmpeg : FFmpeg:onProgress: Duration: 00:00:
12.03, start: 0.000000, bitrate: 17234 kb/s
06-08 17:43:29.886 20835 20835 D ffmpeg : FFmpeg:onProgress: Stream #0:0(en
g): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p, 1920x1080, 16902 kb/s,
SAR 1:1 DAR 16:9, 29.81 fps, 29.85 tbr, 90k tbn, 180k tbc (default)
06-08 17:43:29.886 20835 20835 D ffmpeg : FFmpeg:onProgress: Metadata:
06-08 17:43:29.890 20835 20835 D ffmpeg : FFmpeg:onProgress: rotate
: 90
06-08 17:43:29.890 20835 20835 D ffmpeg : FFmpeg:onProgress: creation_tim
e : 2016-06-02 09:20:58
06-08 17:43:29.891 20835 20835 D ffmpeg : FFmpeg:onProgress: handler_name
: VideoHandle
06-08 17:43:29.891 20835 20835 D ffmpeg : FFmpeg:onProgress: Side data:
06-08 17:43:29.891 20835 20835 D ffmpeg : FFmpeg:onProgress: displaymatri
x: rotation of -90.00 degrees
06-08 17:43:29.892 20835 20835 D ffmpeg : FFmpeg:onProgress: Stream #0:1(en
g): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 96 kb/s (default)
06-08 17:43:29.892 20835 20835 D ffmpeg : FFmpeg:onProgress: Metadata:
06-08 17:43:29.893 20835 20835 D ffmpeg : FFmpeg:onProgress: creation_tim
e : 2016-06-02 09:20:58
06-08 17:43:29.893 20835 20835 D ffmpeg : FFmpeg:onProgress: handler_name
: SoundHandle
06-08 17:43:29.893 20835 20835 D ffmpeg : FFmpeg:onProgress: Please use -b:a or
-b:v, -b is ambiguous
06-08 17:43:29.894 20835 20835 D ffmpeg : FFmpeg:onProgress: Codec AVOption pre
set (Set the encoding preset (cf. x264 --fullhelp)) specified for output file #0
(/storage/emulated/0/Pictures/scaled_video.mp4) has not been used for any strea
m. The most likely reason is either wrong type (e.g. a video option with no vide
o streams) or that it is a private option of some encoder which was not actually
used for any stream.
06-08 17:43:29.939 20835 20835 D ffmpeg : FFmpeg:onProgress: [mpeg4 @ 0xb5c4440
0] Invalid pixel aspect ratio 5121/5120, limit is 255/255 reducing
06-08 17:43:29.996 20835 20835 D ffmpeg : FFmpeg:onProgress: Output #0, mp4, to
'/storage/emulated/0/Pictures/scaled_video.mp4':
06-08 17:43:29.998 20835 20835 D ffmpeg : FFmpeg:onProgress: Metadata:
06-08 17:43:29.999 20835 20835 D ffmpeg : FFmpeg:onProgress: major_brand
: mp42
06-08 17:43:30.000 20835 20835 D ffmpeg : FFmpeg:onProgress: minor_version
: 0
06-08 17:43:30.000 20835 20835 D ffmpeg : FFmpeg:onProgress: compatible_bra
nds: isommp42
06-08 17:43:30.001 20835 20835 D ffmpeg : FFmpeg:onProgress: com.android.ve
rsion: 6.0.1
06-08 17:43:30.002 20835 20835 D ffmpeg : FFmpeg:onProgress: encoder
: Lavf57.25.100
06-08 17:43:30.003 20835 20835 D ffmpeg : FFmpeg:onProgress: Stream #0:0(en
g): Video: mpeg4 ( [0][0][0] / 0x0020), yuv420p, 640x1138 [SAR 1:1 DAR 320:569],
q=2-31, 2097 kb/s, SAR 5121:5120 DAR 9:16, 15 fps, 15360 tbn, 15 tbc (default)
06-08 17:43:30.004 20835 20835 D ffmpeg : FFmpeg:onProgress: Metadata:
06-08 17:43:30.005 20835 20835 D ffmpeg : FFmpeg:onProgress: handler_name
: VideoHandle
06-08 17:43:30.006 20835 20835 D ffmpeg : FFmpeg:onProgress: creation_tim
e : 2016-06-02 09:20:58
06-08 17:43:30.007 20835 20835 D ffmpeg : FFmpeg:onProgress: encoder
: Lavc57.24.102 mpeg4
06-08 17:43:30.008 20835 20835 D ffmpeg : FFmpeg:onProgress: Side data:
06-08 17:43:30.008 20835 20835 D ffmpeg : FFmpeg:onProgress: unknown side
data type 10 (24 bytes)
06-08 17:43:30.008 20835 20835 D ffmpeg : FFmpeg:onProgress: Stream #0:1(en
g): Audio: aac (LC) ([64][0][0][0] / 0x0040), 48000 Hz, mono, fltp, 12 kb/s (def
ault)
06-08 17:43:30.008 20835 20835 D ffmpeg : FFmpeg:onProgress: Metadata:
06-08 17:43:30.008 20835 20835 D ffmpeg : FFmpeg:onProgress: creation_tim
e : 2016-06-02 09:20:58
06-08 17:43:30.008 20835 20835 D ffmpeg : FFmpeg:onProgress: handler_name
: SoundHandle
06-08 17:43:30.009 20835 20835 D ffmpeg : FFmpeg:onProgress: encoder
: Lavc57.24.102 aac
06-08 17:43:30.009 20835 20835 D ffmpeg : FFmpeg:onProgress: Stream mapping:
06-08 17:43:30.009 20835 20835 D ffmpeg : FFmpeg:onProgress: Stream #0:0 -> #
0:0 (h264 (native) -> mpeg4 (native))
06-08 17:43:30.009 20835 20835 D ffmpeg : FFmpeg:onProgress: Stream #0:1 -> #
0:1 (aac (native) -> aac (native))
06-08 17:43:30.010 20835 20835 D ffmpeg : FFmpeg:onProgress: Press [q] to stop,
[?] for help
06-08 17:43:30.730 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 2 fps=0.
0 q=2.0 size= 129kB time=00:00:01.00 bitrate=1056.4kbits/s speed=1.66x
06-08 17:43:31.350 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 5 fps=4.
0 q=2.0 size= 314kB time=00:00:01.00 bitrate=2566.0kbits/s dup=0 drop=1 spee
d=0.809x
06-08 17:43:31.842 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 8 fps=4.
6 q=7.5 size= 404kB time=00:00:01.00 bitrate=3302.5kbits/s dup=0 drop=4 spee
d=0.573x
06-08 17:43:32.367 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 10 fps=4.
4 q=8.7 size= 431kB time=00:00:01.00 bitrate=3523.1kbits/s dup=0 drop=6 spee
d=0.441x
06-08 17:43:32.873 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 13 fps=4.
7 q=9.0 size= 518kB time=00:00:01.00 bitrate=4230.9kbits/s dup=0 drop=9 spee
d=0.361x
06-08 17:43:33.392 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 15 fps=4.
5 q=11.6 size= 536kB time=00:00:01.00 bitrate=4381.7kbits/s dup=0 drop=11 sp
eed=0.303x
06-08 17:43:34.011 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 17 fps=4.
3 q=11.7 size= 558kB time=00:00:02.00 bitrate=2279.7kbits/s dup=0 drop=13 sp
eed=0.512x
06-08 17:43:34.621 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 20 fps=4.
4 q=12.5 size= 598kB time=00:00:02.00 bitrate=2444.5kbits/s dup=0 drop=16 sp
eed=0.443x
06-08 17:43:35.207 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 23 fps=4.
5 q=11.3 size= 630kB time=00:00:02.00 bitrate=2574.3kbits/s dup=0 drop=19 sp
eed=0.394x
06-08 17:43:35.726 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 26 fps=4.
6 q=10.1 size= 689kB time=00:00:02.00 bitrate=2815.3kbits/s dup=0 drop=22 sp
eed=0.357x
06-08 17:43:36.252 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 28 fps=4.
6 q=9.6 size= 707kB time=00:00:02.00 bitrate=2888.7kbits/s dup=0 drop=24 spe
ed=0.327x
06-08 17:43:36.749 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 31 fps=4.
7 q=9.5 size= 726kB time=00:00:02.06 bitrate=2879.6kbits/s dup=0 drop=27 spe
ed=0.311x
06-08 17:43:37.341 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 33 fps=4.
6 q=9.3 size= 767kB time=00:00:03.00 bitrate=2089.4kbits/s dup=0 drop=29 spe
ed=0.417x
06-08 17:43:37.872 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 35 fps=4.
5 q=9.4 size= 791kB time=00:00:03.00 bitrate=2154.3kbits/s dup=0 drop=31 spe
ed=0.386x
06-08 17:43:38.447 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 38 fps=4.
6 q=9.2 size= 854kB time=00:00:03.00 bitrate=2324.7kbits/s dup=0 drop=34 spe
ed=0.361x
06-08 17:43:39.005 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 41 fps=4.
6 q=8.2 size= 883kB time=00:00:03.00 bitrate=2404.7kbits/s dup=0 drop=36 spe
ed=0.338x
06-08 17:43:39.507 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 43 fps=4.
6 q=9.0 size= 918kB time=00:00:03.00 bitrate=2499.3kbits/s dup=0 drop=38 spe
ed=0.32x
06-08 17:43:40.065 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 46 fps=4.
6 q=9.6 size= 948kB time=00:00:03.06 bitrate=2531.5kbits/s dup=0 drop=41 spe
ed=0.307x
06-08 17:43:40.602 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 48 fps=4.
6 q=9.3 size= 990kB time=00:00:04.01 bitrate=2021.2kbits/s dup=0 drop=43 spe
ed=0.381x
06-08 17:43:41.189 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 51 fps=4.
6 q=7.3 size= 1025kB time=00:00:04.01 bitrate=2094.5kbits/s dup=0 drop=46 spe
ed=0.361x
06-08 17:43:41.744 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 54 fps=4.
6 q=6.9 size= 1064kB time=00:00:04.01 bitrate=2173.0kbits/s dup=0 drop=49 spe
ed=0.345x
06-08 17:43:42.288 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 56 fps=4.
6 q=6.1 size= 1082kB time=00:00:04.01 bitrate=2209.5kbits/s dup=0 drop=51 spe
ed=0.329x
06-08 17:43:42.872 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 59 fps=4.
6 q=4.5 size= 1107kB time=00:00:04.01 bitrate=2260.3kbits/s dup=0 drop=54 spe
ed=0.314x
06-08 17:43:43.292 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 61 fps=4.
6 q=3.2 size= 1152kB time=00:00:04.26 bitrate=2212.2kbits/s dup=0 drop=56 spe
ed=0.321x
06-08 17:43:43.986 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 64 fps=4.
6 q=3.9 size= 1178kB time=00:00:05.01 bitrate=1924.7kbits/s dup=0 drop=59 spe
ed=0.361x
06-08 17:43:44.518 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 66 fps=4.
6 q=3.6 size= 1196kB time=00:00:05.01 bitrate=1953.9kbits/s dup=0 drop=61 spe
ed=0.347x
06-08 17:43:45.104 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 69 fps=4.
6 q=3.4 size= 1232kB time=00:00:05.01 bitrate=2013.0kbits/s dup=0 drop=64 spe
ed=0.334x
06-08 17:43:45.687 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 72 fps=4.
6 q=4.9 size= 1263kB time=00:00:05.01 bitrate=2063.4kbits/s dup=0 drop=67 spe
ed=0.321x
06-08 17:43:46.262 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 75 fps=4.
6 q=3.5 size= 1307kB time=00:00:05.01 bitrate=2135.1kbits/s dup=0 drop=70 spe
ed=0.31x
06-08 17:43:46.840 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 77 fps=4.
6 q=3.1 size= 1334kB time=00:00:06.01 bitrate=1816.5kbits/s dup=0 drop=72 spe
ed=0.359x
06-08 17:43:47.354 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 80 fps=4.
6 q=3.5 size= 1380kB time=00:00:06.01 bitrate=1878.6kbits/s dup=0 drop=75 spe
ed=0.349x
06-08 17:43:47.826 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 82 fps=4.
6 q=3.6 size= 1412kB time=00:00:06.01 bitrate=1923.2kbits/s dup=0 drop=77 spe
ed=0.339x
06-08 17:43:48.346 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 85 fps=4.
7 q=3.5 size= 1476kB time=00:00:06.01 bitrate=2009.8kbits/s dup=0 drop=80 spe
ed=0.33x
06-08 17:43:48.911 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 88 fps=4.
7 q=3.5 size= 1524kB time=00:00:06.01 bitrate=2074.7kbits/s dup=0 drop=83 spe
ed=0.32x
06-08 17:43:49.496 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 91 fps=4.
7 q=3.8 size= 1556kB time=00:00:06.06 bitrate=2101.5kbits/s dup=0 drop=86 spe
ed=0.313x
06-08 17:43:50.100 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 93 fps=4.
7 q=4.1 size= 1616kB time=00:00:07.01 bitrate=1886.0kbits/s dup=0 drop=88 spe
ed=0.352x
06-08 17:43:50.598 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 95 fps=4.
6 q=4.3 size= 1652kB time=00:00:07.01 bitrate=1928.4kbits/s dup=0 drop=90 spe
ed=0.342x
06-08 17:43:51.182 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 98 fps=4.
7 q=4.7 size= 1728kB time=00:00:07.01 bitrate=2017.1kbits/s dup=0 drop=93 spe
ed=0.333x
06-08 17:43:51.693 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 100 fps=4.
6 q=4.6 size= 1763kB time=00:00:07.01 bitrate=2057.5kbits/s dup=0 drop=95 spe
ed=0.325x
06-08 17:43:52.272 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 103 fps=4.
6 q=4.6 size= 1812kB time=00:00:07.01 bitrate=2115.1kbits/s dup=0 drop=98 spe
ed=0.317x
06-08 17:43:52.839 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 106 fps=4.
7 q=4.2 size= 1845kB time=00:00:07.06 bitrate=2138.7kbits/s dup=0 drop=101 sp
eed=0.311x
06-08 17:43:53.383 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 108 fps=4.
6 q=4.1 size= 1886kB time=00:00:08.02 bitrate=1925.7kbits/s dup=0 drop=103 sp
eed=0.344x
06-08 17:43:53.966 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 111 fps=4.
7 q=3.5 size= 1940kB time=00:00:08.02 bitrate=1981.0kbits/s dup=0 drop=106 sp
eed=0.336x
06-08 17:43:54.472 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 113 fps=4.
6 q=3.1 size= 1968kB time=00:00:08.02 bitrate=2010.1kbits/s dup=0 drop=108 sp
eed=0.329x
06-08 17:43:55.129 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 116 fps=4.
6 q=3.3 size= 2016kB time=00:00:08.02 bitrate=2058.5kbits/s dup=0 drop=111 sp
eed=0.321x
06-08 17:43:55.624 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 119 fps=4.
7 q=3.2 size= 2052kB time=00:00:08.02 bitrate=2096.0kbits/s dup=0 drop=114 sp
eed=0.314x
06-08 17:43:56.082 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 121 fps=4.
6 q=2.7 size= 2119kB time=00:00:08.06 bitrate=2152.0kbits/s dup=0 drop=116 sp
eed=0.309x
06-08 17:43:56.729 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 124 fps=4.
7 q=4.0 size= 2172kB time=00:00:09.02 bitrate=1971.5kbits/s dup=0 drop=119 sp
eed=0.339x
06-08 17:43:57.292 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 127 fps=4.
7 q=3.5 size= 2210kB time=00:00:09.02 bitrate=2006.0kbits/s dup=0 drop=122 sp
eed=0.332x
06-08 17:43:57.793 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 129 fps=4.
7 q=3.3 size= 2234kB time=00:00:09.02 bitrate=2028.1kbits/s dup=0 drop=124 sp
eed=0.326x
06-08 17:43:58.431 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 132 fps=4.
7 q=3.3 size= 2275kB time=00:00:09.02 bitrate=2065.6kbits/s dup=0 drop=127 sp
eed=0.319x
06-08 17:43:58.986 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 135 fps=4.
7 q=3.4 size= 2344kB time=00:00:09.02 bitrate=2127.5kbits/s dup=0 drop=130 sp
eed=0.313x
06-08 17:43:59.374 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 136 fps=4.
6 q=3.2 size= 2356kB time=00:00:09.10 bitrate=2119.0kbits/s dup=0 drop=131 sp
eed=0.31x
06-08 17:43:59.986 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 139 fps=4.
6 q=2.9 size= 2392kB time=00:00:10.02 bitrate=1954.2kbits/s dup=0 drop=133 sp
eed=0.335x
06-08 17:44:00.582 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 142 fps=4.
7 q=2.8 size= 2428kB time=00:00:10.02 bitrate=1983.5kbits/s dup=0 drop=136 sp
eed=0.329x
06-08 17:44:01.158 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 145 fps=4.
7 q=3.0 size= 2516kB time=00:00:10.02 bitrate=2055.4kbits/s dup=0 drop=139 sp
eed=0.323x
06-08 17:44:01.691 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 148 fps=4.
7 q=4.6 size= 2583kB time=00:00:10.02 bitrate=2110.7kbits/s dup=0 drop=142 sp
eed=0.317x
06-08 17:44:02.168 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 150 fps=4.
7 q=4.8 size= 2626kB time=00:00:10.02 bitrate=2145.1kbits/s dup=0 drop=144 sp
eed=0.312x
06-08 17:44:02.587 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 152 fps=4.
7 q=5.0 size= 2668kB time=00:00:10.32 bitrate=2117.0kbits/s dup=0 drop=146 sp
eed=0.317x
06-08 17:44:03.209 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 154 fps=4.
6 q=5.0 size= 2709kB time=00:00:11.02 bitrate=2012.4kbits/s dup=0 drop=148 sp
eed=0.333x
06-08 17:44:03.815 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 157 fps=4.
7 q=3.7 size= 2770kB time=00:00:11.02 bitrate=2057.2kbits/s dup=0 drop=151 sp
eed=0.327x
06-08 17:44:04.402 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 160 fps=4.
7 q=3.3 size= 2800kB time=00:00:11.02 bitrate=2079.7kbits/s dup=0 drop=154 sp
eed=0.321x
06-08 17:44:04.965 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 163 fps=4.
7 q=3.0 size= 2835kB time=00:00:11.02 bitrate=2105.7kbits/s dup=0 drop=157 sp
eed=0.316x
06-08 17:44:05.505 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 166 fps=4.
7 q=3.1 size= 2880kB time=00:00:11.06 bitrate=2131.8kbits/s dup=0 drop=160 sp
eed=0.313x
06-08 17:44:06.094 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 169 fps=4.
7 q=3.3 size= 2880kB time=00:00:11.26 bitrate=2093.9kbits/s dup=0 drop=163 sp
eed=0.313x
06-08 17:44:06.603 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 171 fps=4.
7 q=3.8 size= 2880kB time=00:00:11.40 bitrate=2069.5kbits/s dup=0 drop=165 sp
eed=0.312x
06-08 17:44:07.192 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 174 fps=4.
7 q=3.6 size= 2880kB time=00:00:11.60 bitrate=2033.8kbits/s dup=0 drop=168 sp
eed=0.313x
06-08 17:44:07.772 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 177 fps=4.
7 q=3.3 size= 2880kB time=00:00:11.80 bitrate=1999.3kbits/s dup=0 drop=171 sp
eed=0.313x
06-08 17:44:08.287 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 180 fps=4.
7 q=3.2 size= 2880kB time=00:00:12.00 bitrate=1966.0kbits/s dup=0 drop=174 sp
eed=0.314x
06-08 17:44:08.900 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 182 fps=4.
7 q=3.5 size= 3118kB time=00:00:12.13 bitrate=2105.2kbits/s dup=0 drop=176 sp
eed=0.313x
06-08 17:44:08.915 20835 20835 D ffmpeg : FFmpeg:onProgress: frame= 182 fps=4.
7 q=3.5 Lsize= 3205kB time=00:00:12.13 bitrate=2163.7kbits/s dup=0 drop=176 s
peed=0.312x
06-08 17:44:08.915 20835 20835 D ffmpeg : FFmpeg:onProgress: video:3177kB audio
:21kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.19565
3%
06-08 17:44:08.946 20835 20835 D ffmpeg : FFmpeg:onProgress: [aac @ 0xb5c44c00]
Qavg: 137.182
06-08 17:44:08.963 20835 20835 D ffmpeg : FFmpeg:onSuccess: ffmpeg version n3.0
.1 Copyright (c) 2000-2016 the FFmpeg developers
06-08 17:44:08.963 20835 20835 D ffmpeg : built with gcc 4.8 (GCC)
06-08 17:44:08.963 20835 20835 D ffmpeg : configuration: --target-os=linux --
cross-prefix=/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/bin/arm-l
inux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime-cpudetect --sysroo
t=/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/sysroot --enable-pic
--enable-libx264 --enable-libass --enable-libfreetype --enable-libfribidi --ena
ble-libmp3lame --enable-fontconfig --enable-pthreads --disable-debug --disable-f
fserver --enable-version3 --enable-hardcoded-tables --disable-ffplay --disable-f
fprobe --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/ho
me/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=
06-08 17:44:08.963 20835 20835 D ffmpeg : libavutil 55. 17.103 / 55. 17.
103
06-08 17:44:08.963 20835 20835 D ffmpeg : libavcodec 57. 24.102 / 57. 24.
102
06-08 17:44:08.963 20835 20835 D ffmpeg : libavformat 57. 25.100 / 57. 25.
100
06-08 17:44:08.963 20835 20835 D ffmpeg : libavdevice 57. 0.101 / 57. 0.
101
06-08 17:44:08.963 20835 20835 D ffmpeg : libavfilter 6. 31.100 / 6. 31.
100
06-08 17:44:08.963 20835 20835 D ffmpeg : libswscale 4. 0.100 / 4. 0.
100
06-08 17:44:08.963 20835 20835 D ffmpeg : libswresample 2. 0.101 / 2. 0.
101
06-08 17:44:08.963 20835 20835 D ffmpeg : libpostproc 54. 0.100 / 54. 0.
100
06-08 17:44:08.963 20835 20835 D ffmpeg : Input #0, mov,mp4,m4a,3gp,3g2,mj2, fr
om '/storage/emulated/0/Pictures/test2.mp4':
06-08 17:44:08.963 20835 20835 D ffmpeg : Metadata:
06-08 17:44:08.963 20835 20835 D ffmpeg : major_brand : mp42
06-08 17:44:08.963 20835 20835 D ffmpeg : minor_version : 0
06-08 17:44:08.963 20835 20835 D ffmpeg : compatible_brands: isommp42
06-08 17:44:08.963 20835 20835 D ffmpeg : creation_time : 2016-06-02 09:2
0:58
06-08 17:44:08.963 20835 20835 D ffmpeg : com.android.version: 6.0.1
06-08 17:44:08.963 20835 20835 D ffmpeg : Duration: 00:00:12.03, start: 0.000
000, bitrate: 17234 kb/s
06-08 17:44:08.963 20835 20835 D ffmpeg : Stream #0:0(eng): Video: h264 (Ba
seline) (avc1 / 0x31637661), yuv420p, 1920x1080, 16902 kb/s, SAR 1:1 DAR 16:9, 2
9.81 fps, 29.85 tbr, 90k tbn, 180k tbc (default)
06-08 17:44:08.963 20835 20835 D ffmpeg : Metadata:
06-08 17:44:08.963 20835 20835 D ffmpeg : rotate : 90
06-08 17:44:08.963 20835 20835 D ffmpeg : creation_time : 2016-06-02 09
:20:58
06-08 17:44:08.963 20835 20835 D ffmpeg : handler_name : VideoHandle
06-08 17:44:08.963 20835 20835 D ffmpeg : Side data:
06-08 17:44:08.963 20835 20835 D ffmpeg : displaymatrix: rotation of -90.
00 degrees
06-08 17:44:08.963 20835 20835 D ffmpeg : Stream #0:1(eng): Audio: aac (LC)
(mp4a / 0x6134706D), 48000 Hz, mono, fltp, 96 kb/s (default)
06-08 17:44:08.963 20835 20835 D ffmpeg : Metadata:
06-08 17:44:08.963 20835 20835 D ffmpeg : creation_time : 2016-06-02 09
:20:58
06-08 17:44:08.963 20835 20835 D ffmpeg : handler_name : SoundHandle
06-08 17:44:08.963 20835 20835 D ffmpeg : Please use -b:a or -b:v, -b is ambigu
ous
06-08 17:44:08.963 20835 20835 D ffmpeg : Codec AVOption preset (Set the encodi
ng preset (cf. x264 --fullhelp)) specified for output file #0 (/storage/emulated
/0/Pictures/scaled_video.mp4) has not been used for any stream. The most likely
reason is either wrong type (e.g. a video option with no video streams) or that
it is a private option of some encoder which was not actually used for any strea
m.
06-08 17:44:08.963 20835 20835 D ffmpeg : [mpeg4 @ 0xb5c44400] Invalid pixel as
pect ratio 5121/5120, limit is 255/255 reducing
06-08 17:44:08.963 20835 20835 D ffmpeg : Output #0, mp4, to '/storage/emulated
/0/Pictures/scaled_video.mp4':
06-08 17:44:08.963 20835 20835 D ffmpeg : Metadata:
06-08 17:44:08.963 20835 20835 D ffmpeg : major_brand : mp42
06-08 17:44:08.963 20835 20835 D ffmpeg : minor_version : 0
06-08 17:44:08.963 20835 20835 D ffmpeg : compatible_brands: isommp42
06-08 17:44:08.963 20835 20835 D ffmpeg : com.android.version: 6.0.1
06-08 17:44:08.963 20835 20835 D ffmpeg : encoder : Lavf57.25.100
06-08 17:44:08.963 20835 20835 D ffmpeg : Stream #0:0(eng): Video: mpeg4 (
[0][0][0] / 0x0020), yuv420p, 640x1138 [SAR 1:1 DAR 320:569], q=2-31, 2097 kb/s,
SAR 5121:5120 DAR 9:16, 15 fps, 15360 tbn, 15 tbc (default)
06-08 17:44:08.963 20835 20835 D ffmpeg : Metadata:
06-08 17:44:08.963 20835 20835 D ffmpeg : handler_name : VideoHandle
06-08 17:44:08.963 20835 20835 D ffmpeg : creation_time : 2016-06-02 09
:20:58
06-08 17:44:08.963 20835 20835 D ffmpeg : encoder : Lavc57.24.102
mpeg4
06-08 17:44:08.963 20835 20835 D ffmpeg : Side data:
06-08 17:44:08.963 20835 20835 D ffmpeg : unknown side data type 10 (24 b
ytes)
06-08 17:44:08.963 20835 20835 D ffmpeg : Stream #0:1(eng): Audio: aac (LC)
([64][0][0][0] / 0x0040), 48000 Hz, mono, fltp, 12 kb/s (default)
06-08 17:44:08.963 20835 20835 D ffmpeg : Metadata:
06-08 17:44:08.963 20835 20835 D ffmpeg : creation_time : 2016-06-02 09
:20:58
06-08 17:44:08.963 20835 20835 D ffmpeg : handler_name : SoundHandle
06-08 17:44:08.963 20835 20835 D ffmpeg : encoder : Lavc57.24.102
aac
06-08 17:44:08.963 20835 20835 D ffmpeg : Stream mapping:
06-08 17:44:08.963 20835 20835 D ffmpeg : Stream #0:0 -> #0:0 (h264 (native)
-> mpeg4 (native))
06-08 17:44:08.963 20835 20835 D ffmpeg : Stream #0:1 -> #0:1 (aac (native) -
> aac (native))
06-08 17:44:08.963 20835 20835 D ffmpeg : Press [q] to stop, [?] for help
06-08 17:44:08.963 20835 20835 D ffmpeg : frame= 2 fps=0.0 q=2.0 size= 1
29kB time=00:00:01.00 bitrate=1056.4kbits/s speed=1.66x
06-08 17:44:08.963 20835 20835 D ffmpeg : frame= 5 fps=4.0 q=2.0 size= 3
14kB time=00:00:01.00 bitrate=2566.0kbits/s dup=0 drop=1 speed=0.809x
06-08 17:44:08.963 20835 20835 D ffmpeg : frame= 8
06-08 17:44:08.963 20835 20835 D ffmpeg : FFmpeg:onFinish: -
Running Windows XP In 2016
2 janvier 2016, par Multimedia MikeI have an interest in getting a 32-bit Windows XP machine up and running. I have a really good yet slightly dated and discarded computer that seemed like a good candidate for dedicating to this task. So the question is : Can Windows XP still be installed from scratch on a computer, activated, and used in 2016 ? I wasn’t quite sure since I have heard stories about how Microsoft has formally ended support for Windows XP as of the first half of 2014 and I wasn’t entirely sure what that meant.
Spoiler : It’s still possible to install and activate Windows XP as of the writing of this post. It’s also possible to download and install all the updates published up until support ended.
The Candidate Computer
This computer was assembled either in late 2008 or early 2009. It was a beast at the time.
Click for a larger image
It was built around the newly-released NVIDIA GTX 280 video card. The case is a Thermaltake DH-101, which is a home theater PC thing. The motherboard is an Asus P5N32-SLI Premium with a Core 2 Duo X6800 2.93 GHz CPU on board. 2 GB of RAM and a 1.5 TB hard drive are also present.
The original owner handed it off to me because their family didn’t have much use for it anymore (too many other machines in the house). Plus it was really, obnoxiously loud. The noisy culprit was the stock blue fan that came packaged with the Intel processor (seen in the photo) whining at around 65 dB. I replaced the fan and brought the noise level way down.
As for connectivity, the motherboard has dual gigabit NICs (of 2 different chipsets for some reason) and onboard wireless 802.11g. I couldn’t make the latter work and this project was taking place a significant distance from my wired network. Instead, I connected a USB 802.11ac dongle and antenna which is advertised to work in both Windows XP and Linux. It works great under Windows XP. Meanwhile, making the adapter work under Linux provided a retro-computing adventure in which I had to modify C code to make the driver work.
So, score 1 for Windows XP over Linux here.
The Simple Joy of Retro-computing
One thing you have to watch out for when you get into retro-computing is fighting the urge to rant about the good old days of computing. Most long-time computer users have a good understanding of the frustration that computers keep getting faster by orders of magnitude and yet using them somehow feels slower and slower over successive software generations.
This really hits home when you get old software running, especially on high-end hardware (relative to what was standard contemporary hardware). After I got this new Windows XP machine running, as usual, I was left wondering why software was so much faster a few generations ago.
Of course, as mentioned, it helps when you get to run old software on hardware that would have been unthinkably high end at the software’s release. Apparently, the minimum WinXP specs as set by MS are a 233 MHz Pentium CPU and 64 MB of RAM, with 1.5 GB of hard drive space. This machine has more than 10x the clock speed (and 2 CPUs), 32x the RAM, and 1000x the HD space. Further, I’m pretty sure 100 Mbit ethernet was the standard consumer gear in 2001 while 802.11b wireless was gaining traction. The 802.11ac adapter makes networking quite pleasant.
Purpose
Retro-computing really seems to be ramping up in popularity lately. For some reason, I feel compelled to declare at this juncture that I was into it before it was cool.Why am I doing this ? I have a huge collection of old DOS/Windows computer games. I also have this nerdy obsession with documenting old video games in the MobyGames database. I used to do a lot of this a few years ago, tracking the effort on my gaming blog. In the intervening years, I have still collected a lot of old, unused, unloved video games, usually either free or very cheap while documenting my collection efforts on that same blog.
So I want to work my way through some of this backlog, particularly the games that are not yet represented in the MobyGames database, and even more pressing, ones that the internet (viewed through Google at least) does not seem to know about. To that end, I thought this was a good excuse to get Windows XP on this old machine. A 32-bit Windows XP machine is capable of running any software advertised as supporting Windows XP, Windows ME, Windows 98, Windows 95, and even 16-bit Windows 3.x (I have games for all these systems). That covers a significant chunk of PC history. It can probably be made to run DOS games as well, but those are (usually) better run under DosBox. In order to get the right display feel, I even invested in a (used) monitor sporting a 4:3 aspect ratio. If I know these old games, most will be engineered and optimized for that ratio rather than the widescreen resolutions seen nowadays.
I would also like to get back to that Xbox optical disc experimentation I was working on a few years ago. Another nice feature of this motherboard is that it still provides a 40-pin IDE/PATA adapter which makes the machine useful for continuing that old investigation (and explains why I have that long IDE cable to no where pictured hanging off the board).
The Messy Details
I did the entire installation process twice. The first time was a bumbling journey of discovery and copious note-taking. I still have Windows XP installation media that includes service pack 2 (SP2), along with 2 separate licenses that haven’t been activated for a long time. My plan was to install it fresh, then install the relevant drivers. Then I would investigate the Windows update and activation issues and everything should be fine.So what’s the deal with Windows Update for XP, and with activations ? Second item first : it IS possible to still activate Windows XP. The servers are still alive and respond quickly. However, as always, you don’t activate until you’re sure everything is working at some baseline. It took awhile to get there.
As for whether Windows Update still works for XP, that’s a tougher question. Short answer is yes ; longer answer is that it can be difficult to kick off the update process. At least on SP2, the “Windows Update” program launches IE6 and navigates to a special microsoft.com URL which initiates the update process (starting with an ActiveX control). This URL no longer exists.
From what I can piece together from my notes, this seems to be the route I eventually took :
- Install Windows XP fresh
- Install drivers for the hardware ; fortunately, Asus still has all the latest drivers necessary for the motherboard and its components but it’s necessary to download these from another network-connected PC since the networking probably won’t be running “out of the box”
- Download the .NET 3.5 runtime, which is the last one supported by Windows XP, and install it
- Download the latest NVIDIA drivers ; this needs to be done after the previous step because the installer requires the .NET runtime ; run the driver installer and don’t try to understand why it insists on re-downloading .NET 3.5 runtime before installation
- While you’re downloading stuff on other computers to be transported to this new machine, be sure to download either Chrome or Firefox per your preference ; if you try to download via IE6, you may find that their download pages aren’t compatible with IE6
- Somewhere along the line (I’m guessing as a side effect of the .NET 3.5 installation), the proper, non-IE6-based Windows Update program magically springs to life ; once this happens, there will be 144 updates (in my case anyway) ; installing these will probably require multiple reboots, but SP3 and all known pre-deprecation security fixes will be installed
- Expect that, even after installing all of these, a few more updates will appear ; eventually, you’ll be at the end of the update road
- Once you’re satisfied everything is working satisfactorily, take the plunge and activate your installation
Residual Quirks
Steam runs great on Windows XP, as do numerous games I have purchased through the service. So that opens up a whole bunch more games that I could play on this machine. Steam’s installer highlights a curious legacy problem of Windows XP– it seems there are many languages that it does not support “out of the box” :
It looks like the Chinese options and a few others that are standard now weren’t standard 15 years ago.
Also, a little while after booting up, I’ll get a crashing error concerning a process called geoforms.scr. This appears to be NVIDIA-related. However, I don’t notice anything obviously operationally wrong with the system.
Regarding DirectX support, DirectX 9 is the highest version officially supported by Windows XP. There are allegedly methods to get DirectX 10 running as well, but I don’t care that much. I did care, briefly, when I realized that a bunch of the demos for the NVIDIA GTX 280 required DX10 which left me wondering why it was possible to install them on Windows XP.
Eventually, by installing enough of these old games, I fully expect to have numerous versions of .NET, DirectX, QT, and Video for Windows installed side by side.
Out of curiosity, I tried playing a YouTube HD/1080p video. I wanted to see if the video was accelerated through my card. The video played at full speed but I noticed some tearing. Then I inspected the CPU usage and noticed that the CPU was quite loaded. So either the GTX 280 doesn’t have video acceleration, or Windows XP doesn’t provide the right APIs, or Chrome is not able to access the APIs in Windows XP, or perhaps some combination of the foregoing.
Games are working well, though. I tried one of my favorite casual games and got sucked into that for, like, an entire night because that’s what casual games do. But then, I booted up a copy of WarCraft III that I procured sometime ago. I don’t have any experience with the WarCraft universe (RTS or MMO) but I developed a keen interest in StarCraft II over the past few years and wanted to try WarCraft III. Unfortunately, I couldn’t get WarCraft III to work correctly on several different Windows 7 installations (movies didn’t play, which left me slightly confused as to what I was supposed to do).
Still works beautifully on the new old Windows XP machine.
The post Running Windows XP In 2016 first appeared on Breaking Eggs And Making Omelettes.