導航:首頁 > 文件處理 > ffmpeg壓縮

ffmpeg壓縮

發布時間:2022-01-11 21:11:06

⑴ 我想用ffmpeg命令行轉換一個視頻文件,視、音頻編碼格式不變,只是將畫面旋轉90度,請問命令行該如何寫

在你的轉碼命令裡面添加上-vf rotate=PI/2或者-vf rotate=3*PI/2,例如
ffmpeg -i E:\ffmpeg\test.mp4 -y -vf rotate=PI/2 E:\ffmpeg\dest1.mp4

⑵ 求ffmpeg音頻壓縮代碼(wav壓縮成wma)

這個簡單。大致的思路是
1.打開wav文件
2.打開要輸出的wma文件
3.不停的讀取數據幀
4.讀取以後解碼並寫入wma
5.關閉wav文件
6.關閉wma文件

重新寫例子太麻煩貼點代碼吧

#include "Debug.h"
#include "FFMpegAVFileReader.h"
#include "FFMpegAVFileReaderFactory.h"
#include <sstream>
#include "yk_convert.h"

static char h264_head[4] = {(char)0x00,(char)0x00,(char)0x00,(char)0x01};

namespace YK
{
FFMpegAVFileReader::FFMpegAVFileReader()
{
ffmpeg_avcodec_init();
ffmpeg_av_register_all();

av_log_set_callback(ffmpeg_log_callback);
m_format_context = 0;
m_input_format = 0;
m_format_parameters = 0;
m_packet = (AVPacket*)av_mallocz(sizeof(AVPacket));
}

FFMpegAVFileReader::~FFMpegAVFileReader()
{
Close();
av_free(m_packet);
}

avfile_reader_param_t* FFMpegAVFileReader::GetParam()
{
//YK::AutoLock l(m_lock);
return &m_param;
}

void FFMpegAVFileReader::Seek(int pts)
{
YK::AutoLock l(m_lock);

int ret = av_seek_frame(m_format_context,-1,(YK::int64_t)pts * (YK::int64_t)1000,AVSEEK_FLAG_BACKWARD | AVSEEK_FLAG_ANY);
//if(ret >= 0)
//{
// for(int i = 0; i < m_format_context->nb_streams; i++)
// {
// avcodec_flush_buffers( m_format_context->streams[i]->codec );
// }
//}

//std::stringstream ss;
//ss << "pts = " << pts
// << " ret = " << ret << std::endl;
//OutputDebugString(ss.str().data());
}

void FFMpegAVFileReader::GetDuration(double& start,double& end)
{
//YK::AutoLock l(m_lock);
start = (double)(m_start_time / 1000000);
end = start + (double)(m_ration / 1000000);
}

service_error_t FFMpegAVFileReader::Open(int time_out)
{
YK::AutoLock l(m_lock);
service_error_t service_error;

// 打開文件
if (av_open_input_file(&m_format_context,TToANSI(m_param.input_file_path).data(),m_input_format,0,m_format_parameters) < 0)
{
service_error.init(service_error_type_failed,"av_open_input_file failed");
return service_error;
}

// 查詢流信息
if(av_find_stream_info(m_format_context) < 0)
{
service_error.init(service_error_type_failed,"av_find_stream_info failed");
return service_error;
}

m_start_time = m_format_context->start_time;
m_ration = m_format_context->ration;

#ifdef _DEBUG
pFile = fopen("D:/1.out","w+b");
#endif

// 保存流信息
av_stream_info_t av_stream_info;
for(unsigned int i = 0; i < m_format_context->nb_streams; i++)
{
AVStream *st = m_format_context->streams[i];
AVCodecContext *enc = st->codec;

if(enc->codec_type == AVMEDIA_TYPE_AUDIO)
{
// 音頻
av_stream_info.av_stream_info_type = av_stream_info_type_audio;
av_stream_info.codec_id = codec_id_none;
//channel_layout = enc->channel_layout;
av_stream_info.audio_channels = enc->channels;
av_stream_info.audio_samplepersec = enc->sample_rate;
av_stream_info.audio_bitpersample = yk_sample_format(enc->sample_fmt);
//audio_sample_fmt = enc->sample_fmt;
//input_codecs[nb_icodecs++] = avcodec_find_decoder_by_name(audio_codec_name);
av_stream_info.codec_id = yk_code_id(enc->codec_id);
av_stream_info.extradata_size = enc->extradata_size;
if(av_stream_info.extradata_size)
memcpy(av_stream_info.extradata,enc->extradata,enc->extradata_size);

if(av_stream_info.codec_id == codec_id_mp3)
{
av_stream_info.extradata_size = sizeof(mpeg1_waveformat_extradata);
mpeg1_waveformat_extradata* pMpeg1WaveFormat = (mpeg1_waveformat_extradata*)av_stream_info.extradata;
pMpeg1WaveFormat->dwHeadBitrate = enc->bit_rate;
pMpeg1WaveFormat->dwPTSHigh = 0;
pMpeg1WaveFormat->dwPTSLow = 0;
pMpeg1WaveFormat->fwHeadFlags = 25;
pMpeg1WaveFormat->fwHeadLayer = ACM_MPEG_LAYER3;
pMpeg1WaveFormat->fwHeadMode = ACM_MPEG_STEREO;
pMpeg1WaveFormat->fwHeadModeExt = 1;
pMpeg1WaveFormat->wHeadEmphasis = 1;
}

AddStreamInfo(av_stream_info);

m_stream_audio_index = i;
}
else if(enc->codec_type == AVMEDIA_TYPE_VIDEO)
{
// 視頻
av_stream_info.av_stream_info_type = av_stream_info_type_video;
av_stream_info.codec_id = codec_id_none;
av_stream_info.video_width = enc->width;
av_stream_info.video_height = enc->height;
av_stream_info.video_profile = enc->profile;
av_stream_info.video_level = enc->level;

if(av_stream_info.video_profile < 0)
{
av_stream_info.video_profile = 77;
}

if(av_stream_info.video_level < 0)
{
av_stream_info.video_level = 30;
}
av_stream_info.extradata_size =

⑶ 如何在Windows上安裝FFmpeg程序

下載FFmpeg。訪問下載頁面時,你將看到很多不同下載選項。你可以根據自己的操作系統選擇下載最新的32位或64位靜態程序版本。
下載並安裝7-zip。7-zip是一個免費的壓縮管理程序,它可以讓你打開FFmpeg文件。
解壓FFmpeg文件夾。當你使用7-zip來解壓文件時,它會在原來下載文件位置生成一個新的文件夾。該文件夾名字類似於「ffmpeg-20130731-git-69fe25c-win32-static」。打開這個文件夾,以供稍後使用。
打開C:盤。點擊開始菜單,然後點擊計算機。選擇安裝Windows系統的磁碟(一般是C:)。在C:盤的根目錄下(該目錄下有名為Windows和Program Files文件夾),右擊並在彈出菜單中選擇新建文件夾。將新文件夾命名為「ffmpeg」。
打開新建的「ffmpeg」文件夾。將解壓生成的文件夾中內容全部拷貝到「ffmpeg」文件夾中。

⑷ MP4視頻太大如何壓縮

你好,很多時候我們在刷視頻的時候看到好看的視頻都想分享給自己的好友看,但是在視頻過大的情況下,我們就需要將視頻進行壓縮,那麼,如何將其進行壓縮呢?壓縮的步驟是什麼?喜脈案將步驟和大家講解下:

打開迅捷壓縮工具,在跳轉的頁面有五個功能選項,點擊選擇視頻壓縮;

以上就是我將視頻進行壓縮簡單步驟講解,希望可以幫助到大家!

⑸ ffmpeg 如何獲取視頻尺寸想把視頻尺寸縮小為原尺寸的一半

重新編碼啊。-vcodec libx264 -r 15 -s 600x450 -aspect 4:3 -vb 320k -acodec libmp3lame -ar 44100 -ab 32k -ac 2
你不想改變就是 。-vcodec -acodec

⑹ ffmpeg 怎麼把h264文件轉成MP4

H.264是編碼規范不是視頻格式,有些Mp4格式的視頻也用這種編碼。一般Mp4使用DIVX或XVID編碼,主要看播放設備是哪種。ffmpeg需要在命令提示符下運行(按Win鍵+R調出運行,輸入CMD即可),而且要轉換的視頻最好與FFmpeg放在同一個目錄下,以下是以轉換PSP能播放的視頻為例:
ffmpeg -y -i "1.avi" -title "Test" -vcodec xvid -s 368x208 -r 29.97 -b 1500 -acodec aac -ac 2 -ar 24000 -ab 128 -vol 200 -f psp -muxvb 768 "1.***"
解釋:以上命令可以在Dos命令行中輸入,也可以創建到批處理文件中運行。不過,前提是:要在ffmpeg所在的目錄中執行
參數:
-y(覆蓋輸出文件,即如果1.***文件已經存在的話,不經提示就覆蓋掉了)
-i "1.avi"(輸入文件是和ffmpeg在同一目錄下的1.avi文件,可以自己加路徑,改名字)
-title "Test"(在PSP中顯示的影片的標題)
-vcodec xvid(使用XVID編碼壓縮視頻,不能改的)
-s 368x208(輸出的解析度為368x208,注意片源一定要是16:9的不然會變形)
-r 29.97(幀數,一般就用這個)
-b 1500(視頻數據流量,用-b xxxx的指令則使用固定碼率,數字隨便改,1500以上沒效果;還可以用動態碼率如:-qscale 4和-qscale 6,4的質量比6高)
-acodec aac(音頻編碼用AAC)
-ac 2(聲道數1或2)
-ar 24000(聲音的采樣頻率,好像PSP只能支持24000Hz)
-ab 128(音頻數據流量,一般選擇32、64、96、128)
-vol 200(200%的音量,自己改)
-f psp(輸出psp專用格式)
-muxvb 768(好像是給PSP機器識別的碼率,一般選擇384、512和768,1500以上,PSP會提示文件損壞了)
"1.***"(輸出文件名,也可以加路徑改文件名)

⑺ ffmpeg壓縮mp3後為什麼音頻播放時間減少了

ffmpeg.exe -i "源音頻文件.ape" -b:a 192k -acodec mp3 -ar 44100 -ac 2 "轉換後的音頻文件.mp3"採用的標准192K,44100采樣率

⑻ 怎麼壓縮視頻且不破壞解析度

可以使用愛剪輯軟體來將視頻文件壓縮且不破壞解析度,步驟如下:

需要工具:電腦、愛剪輯軟體

一、首先找到需要壓縮的視頻,並將其拖到桌面上方便查找,此時視頻大小為66.6M。

⑼ 視頻先轉碼再壓縮 還是先壓縮再轉碼好 還是轉碼壓縮一起好啊

個人推薦一起比較好

⑽ ffmpeg x264 壓縮 為什麼出現馬賽克

碼率太低

閱讀全文

與ffmpeg壓縮相關的資料

熱點內容
於正新劇玉樓春在什麼App播放 瀏覽:127
學習社會經驗下載什麼app 瀏覽:475
php發布站程序 瀏覽:204
源碼編譯ntfs內核模塊 瀏覽:120
r11s手機管家沒有加密 瀏覽:781
怎麼看電腦連接哪個伺服器 瀏覽:191
二手伺服器設備欺詐如何解決 瀏覽:877
單片機伺服器安裝win10 瀏覽:658
胸椎壓縮性骨折傷殘 瀏覽:954
mt怎麼解壓文件 瀏覽:41
達芬奇項目伺服器有什麼用 瀏覽:854
自製怎麼捏都可以復原的解壓球 瀏覽:615
qq軟體管理怎麼加密 瀏覽:740
手機使用代碼編程器 瀏覽:939
單片機四位99秒錶製作流程圖 瀏覽:617
壓縮包軟體如何安裝 瀏覽:767
我的世界伺服器1122地址 瀏覽:6
蘋果如何與安卓系統連接伺服器 瀏覽:934
農業銀行app學生繳費怎麼切換 瀏覽:470
福建在哪個app上有安康碼 瀏覽:547