⑴ dos下 ,如何通过ffmpeg命令只输出视频时间长度,就是Duration后面的时间。
http://blog.csdn.net/bluestn/article/details/6132981
⑵ ffmpeg怎么批量处理任意类型的视频文件
@echooff
cd/d%~dp0
::设置要处理的视频格式
setExt=*.avi,*.mp4,*.wmv,*.flv,*.mkv,*.rmvb,*.rm,*.3gp
for%%ain(%Ext%)do(
rem这里写ffmpeg处理视频的命令,ffmpeg.exe不和脚本在一起话,请添加完整的路径
rem参数中需要加入原文件路径的,请用%%a代替。
ffmpeg参数1参数2参数3参数4..........
)
pause
大致的写法就是这样。
⑶ 我想用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
⑷ MP4视频太大如何压缩
你好,很多时候我们在刷视频的时候看到好看的视频都想分享给自己的好友看,但是在视频过大的情况下,我们就需要将视频进行压缩,那么,如何将其进行压缩呢?压缩的步骤是什么?喜脉案将步骤和大家讲解下:
打开迅捷压缩工具,在跳转的页面有五个功能选项,点击选择视频压缩;
以上就是我将视频进行压缩简单步骤讲解,希望可以帮助到大家!
⑸ 请问如何使用ffmpeg将摄像头捕获的视频进行压缩
无解
⑹ 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视频转MP4 想转换成原视频画面大小的1半 怎么写命令
不知道你说的是不是四分之一
就是长宽都变为原来的一半
加入这个参数即可
-vf "scale=iw/2:ih/2"
如果你是要真真正正面积上的一半,也就是长宽都是原来的二分之根号二倍的话,建议自己根据源的长宽手动计算然后-vf "scale=-1:xxx"
⑻ 求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 =
⑼ ffmpeg如何把5秒内的视频转成wep图片,并且每隔5秒执行一次的命令
截取一张352x240尺寸大小的,格式为jpg的图片:ffmpeg-itest.asf-y-fimage2-t0.001-s352x240a.jpg自己换成参数