📄 movplayer.cpp
字号:
/*
* The contents of this file are subject to the Mozilla Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is MPEG4IP.
*
* The Initial Developer of the Original Code is Cisco Systems Inc.
* Portions created by Cisco Systems Inc. are
* Copyright (C) Cisco Systems Inc. 2000, 2001. All Rights Reserved.
*
* Contributor(s):
* Bill May wmay@cisco.com
*/
/*
* movplayer.cpp - test program for quicktime library
*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <syslog.h>
#include <fstream.h>
#include <strstream.h>
#include <quicktime.h>
int main (int argc, char **argv)
{
char *name;
int ret;
argv++;
argc--;
if (*argv == NULL) {
name = "/home/wmay/content/batman_av.mov";
} else {
name = *argv;
}
ret = quicktime_check_sig(name);
if (ret == 1) {
printf("Looks like qt movie\n");
} else {
printf("return from check_sig is %d", ret);
exit(0);
}
quicktime_t *file;
file = quicktime_open(name, 1, 0, 0);
if (file == NULL) {
printf("Couldn't open file %s\n", name);
exit(1);
}
int video = quicktime_video_tracks(file);
int audio = quicktime_audio_tracks(file);
int track_chan = quicktime_track_channels(file, 0);
printf("Video tracks %d audio tracks %d trackchan %d\n", video, audio,
track_chan);
printf("Video compressor :%s:\n", quicktime_video_compressor(file, 0));
if (video > 0) {
long vlen = quicktime_video_length(file, 0);
int vw, vh;
float fr;
vw = quicktime_video_width(file, 0);
vh = quicktime_video_height(file, 0);
fr = quicktime_video_frame_rate(file, 0);
printf("len %ld vw %d vh %d frame rate %g\n", vlen, vw, vh, fr);
#if 0
FILE *ofile = fopen("temp.mp4v", "w");
unsigned char *buffer = (unsigned char *)malloc(8 * 1024);
long max_fsize = 8 * 1024;
for (long frame_on = 0; frame_on < vlen; frame_on++) {
long next_frame = quicktime_frame_size(file, frame_on, 0);
if (next_frame > max_fsize) {
max_fsize = next_frame;
free(buffer);
buffer = (unsigned char *)malloc(max_fsize);
}
next_frame = quicktime_read_frame(file,
buffer,
0);
printf("Framesize %ld\n", next_frame);
fwrite(buffer, next_frame, sizeof(unsigned char), ofile);
}
fclose(ofile);
#endif
}
if (audio > 0) {
long sample = quicktime_audio_sample_rate(file, 0);
long audiolen = quicktime_audio_length(file, 0);
int bits = quicktime_audio_bits(file, 0);
printf("Audio sample %ld len %ld bits %d\n", sample, audiolen, bits);
printf("Audio compressor :%s:\n", quicktime_audio_compressor(file, 0));
#if 0
unsigned char buffer[8096];
FILE *ofile = fopen("temp.aac", "w");
uint32_t retsize;
for (long ix = 0; ix < audiolen; ix++) {
retsize = quicktime_read_audio_frame(file, buffer, 0);
//printf("Frame %ld - len %d", ix, retsize);
fwrite(buffer, retsize, sizeof(char), ofile);
}
fclose(ofile);
#endif
}
quicktime_close(file);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -