÷è÷ë²Ù×÷ϵͳÔõÑùÌṩÒôƵºÍÊÓƵÎļþµÄת»»ºÍ´¦Àí£¿
÷è÷ë²Ù×÷ϵͳÔõÑùÌṩÒôƵºÍÊÓƵÎļþµÄת»»ºÍ´¦Àí£¿
µ¼ÑÔ£º
÷è÷ë²Ù×÷ϵͳÊÇÖйú×ÔÖ÷Ñз¢µÄÒ»¿î»ùÓÚLinuxÄں˵IJÙ×÷ϵͳ¡£Ëü¾ß±¸¸ß¶ÈµÄ¿É¶¨ÖÆÐÔºÍÇå¾²ÐÔ£¬²¢ÇÒÌṩÁ˸»ºñµÄ¹¦Ð§ºÍ¹¤¾ßÀ´Öª×ãÓû§µÄÐèÇó¡£ÆäÖÐÒ»ÏîÖ÷ÒªµÄ¹¦Ð§ÊÇÒôƵºÍÊÓƵÎļþµÄת»»ºÍ´¦Àí¡£±¾ÎĽ«ÏÈÈÝ÷è÷ë²Ù×÷ϵͳÌṩµÄÏà¹Ø¹¦Ð§ºÍÑÝʾÔõÑùʹÓôúÂëʵÏÖת»»ºÍ´¦Àí¡£
Ò»¡¢ ÒôƵÎļþµÄת»»ºÍ´¦Àí
Îļþת»»
÷è÷ë²Ù×÷ϵͳÌṩÁ˸»ºñµÄ¹¤¾ßºÍ¿âÀ´Ö§³ÖÒôƵÎļþµÄת»»¡£ÆäÖУ¬FFmpegÊÇÒ»¿îÇ¿Ê¢µÄ¿ªÔ´ÒôÊÓƵ´¦Àí¹¤¾ß£¬Ëü¿ÉÒÔʵÏÖ¶àÖÖÃûÌõÄÒôƵÎļþÖ®¼äµÄת»»¡£ÏÂÃæÊÇÒ»¸öʹÓÃFFmpegÀ´½«mp3ÃûÌõÄÒôƵÎļþת»»ÎªwavÃûÌõÄʾÀý´úÂ룺
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char** argv) { // ŲÓÃFFmpeg¾ÙÐÐת»» char cmd[256]; sprintf(cmd, "ffmpeg -i input.mp3 output.wav"); system(cmd); return 0; }
µÇ¼ºó¸´ÖÆ
ÉÏÊö´úÂëÖУ¬Å²ÓÃÁËϵͳÏÂÁîÀ´Ö´ÐÐFFmpegµÄת»»²Ù×÷¡£Óû§Ö»Ð轫ÐèҪת»»µÄÒôƵÎļþÃüÃûΪ”input.mp3″£¬²¢ÉèÖÃÄ¿µÄÎļþÃûΪ”output.wav”¼´¿É¡£
Îļþ´¦Àí
³ýÁËÎļþת»»£¬÷è÷ë²Ù×÷ϵͳ»¹ÌṩÁËһЩ¹¦Ð§ºÍ¿âÀ´¾ÙÐÐÒôƵÎļþµÄ´¦Àí¡£ÀýÈ磬libsndfileÊÇÒ»¿îÓÃÓÚ¶ÁÈ¡ºÍдÈëÒôƵÎļþµÄ¿â¡£ÏÂÃæÊÇÒ»¸öʹÓÃlibsndfile¶ÁÈ¡ÒôƵÎļþ²¢Êä³öÆäÐÅÏ¢µÄʾÀý´úÂ룺
#include <stdio.h> #include <sndfile.h> int main(int argc, char** argv) { // ·¿ªÒôƵÎļþ SNDFILE* file = sf_open("input.wav", SFM_READ, NULL); if (file == NULL) { printf("Failed to open input file "); return -1; } // Êä³öÒôƵÎļþÐÅÏ¢ printf("Channels: %d ", sf_info.channels); printf("Sample Rate: %d ", sf_info.samplerate); printf("Frames: %d ", sf_info.frames); // ¹Ø±ÕÒôƵÎļþ sf_close(file); return 0; }
µÇ¼ºó¸´ÖÆ
ÉÏÊö´úÂëÖУ¬Ê¹ÓÃlibsndfile¿â·¿ªÁËÒ»¸öÃûΪ”input.wav”µÄÒôƵÎļþ£¬²¢Êä³öÁËÆäͨµÀÊý¡¢²ÉÑùÂʺÍÖ¡ÊýµÈÐÅÏ¢¡£
¶þ¡¢ÊÓƵÎļþµÄת»»ºÍ´¦Àí
Îļþת»»
÷è÷ë²Ù×÷ϵͳͬÑùÌṩÁ˹¦Ð§Ç¿Ê¢µÄ¹¤¾ßºÍ¿âÀ´Ö§³ÖÊÓƵÎļþµÄת»»¡£ÆäÖУ¬FFmpegÒ²¿ÉÒÔʵÏÖÊÓƵÎļþµÄת»»¡£ÏÂÃæÊÇÒ»¸öʹÓÃFFmpeg½«mp4ÃûÌõÄÊÓƵÎļþת»»ÎªaviÃûÌõÄʾÀý´úÂ룺
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char** argv) { // ŲÓÃFFmpeg¾ÙÐÐת»» char cmd[256]; sprintf(cmd, "ffmpeg -i input.mp4 output.avi"); system(cmd); return 0; }
µÇ¼ºó¸´ÖÆ
ÉÏÊö´úÂëÖУ¬Å²ÓÃÁËϵͳÏÂÁîÀ´Ö´ÐÐFFmpegµÄת»»²Ù×÷¡£Óû§Ö»Ð轫ÐèҪת»»µÄÊÓƵÎļþÃüÃûΪ”input.mp4″£¬²¢ÉèÖÃÄ¿µÄÎļþÃûΪ”output.avi”¼´¿É¡£
Îļþ´¦Àí
÷è÷ë²Ù×÷ϵͳ»¹ÌṩÁËһЩ¹¦Ð§ºÍ¿âÀ´¾ÙÐÐÊÓƵÎļþµÄ´¦Àí¡£ÀýÈ磬OpenCVÊÇÒ»¿îÆÕ±éʹÓõĿªÔ´ÅÌËã»úÊÓ¾õ¿â£¬Ëü¿ÉÒÔÓÃÓÚ´¦ÀíÊÓƵÎļþÖеÄͼÏñÖ¡¡£ÏÂÃæÊÇÒ»¸öʹÓÃOpenCV¶ÁÈ¡ÊÓƵÎļþ²¢Êä³öÿһ֡ͼÏñµÄʾÀý´úÂ룺
#include <opencv2/opencv.hpp> int main(int argc, char** argv) { // ·¿ªÊÓƵÎļþ cv::VideoCapture cap("input.avi"); if (!cap.isOpened()) { printf("Failed to open input file "); return -1; } cv::Mat frame; while (cap.read(frame)) { // ´¦Àíÿһ֡ͼÏñ // ... // ÏÔʾͼÏñ cv::imshow("Frame", frame); cv::waitKey(20); } // ¹Ø±ÕÊÓƵÎļþ cap.release(); return 0; }
µÇ¼ºó¸´ÖÆ
ÉÏÊö´úÂëÖУ¬Ê¹ÓÃOpenCV¿â·¿ªÁËÒ»¸öÃûΪ”input.avi”µÄÊÓƵÎļþ£¬²¢Ê¹ÓÃcap.read()º¯ÊýÒ»Á¬¶Áȡÿһ֡ͼÏñ¾ÙÐд¦Àí¡£
½áÂÛ£º
÷è÷ë²Ù×÷ϵͳÌṩÁ˸»ºñµÄ¹¦Ð§ºÍ¹¤¾ßÀ´Ö§³ÖÒôƵºÍÊÓƵÎļþµÄת»»ºÍ´¦Àí¡£Í¨¹ýʹÓÃFFmpegºÍlibsndfileµÈ¿â£¬Óû§¿ÉÒÔÀû±ãµØ¾ÙÐÐÒôƵÎļþµÄת»»ºÍ´¦Àí²Ù×÷¡£¶øͨ¹ýʹÓÃFFmpegºÍOpenCVµÈ¿â£¬Óû§¿ÉÒÔÇáËɵؾÙÐÐÊÓƵÎļþµÄת»»ºÍ´¦Àí²Ù×÷¡£ÕâЩ¹¦Ð§²»µ«¸»ºñÁË÷è÷ë²Ù×÷ϵͳµÄÓ¦Óó¡¾°£¬Ò²Îª¿ª·¢ÕßÌṩÁ˱㵱µÄ¹¤¾ßÀ´ÊµÏÖÖÖÖÖÒôƵºÍÊÓƵ´¦ÀíÐèÇó¡£
ÒÔÉϾÍÊÇ÷è÷ë²Ù×÷ϵͳÔõÑùÌṩÒôƵºÍÊÓƵÎļþµÄת»»ºÍ´¦Àí£¿µÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡