Bläddra i källkod

Use MP4s when not on windows

Also, make it use 'veryfast' preset.  Still testing this, might have to
revise this later.
jp9000 11 år sedan
förälder
incheckning
f9809847cd

+ 1 - 1
libobs/media-io/audio-io.c

@@ -497,7 +497,7 @@ static inline bool audio_input_init(struct audio_input *input,
 }
 
 bool audio_output_connect(audio_t audio,
-		struct audio_convert_info *conversion,
+		const struct audio_convert_info *conversion,
 		void (*callback)(void *param, const struct audio_data *data),
 		void *param)
 {

+ 1 - 1
libobs/media-io/audio-io.h

@@ -173,7 +173,7 @@ EXPORT int audio_output_open(audio_t *audio, struct audio_output_info *info);
 EXPORT void audio_output_close(audio_t audio);
 
 EXPORT bool audio_output_connect(audio_t video,
-		struct audio_convert_info *conversion,
+		const struct audio_convert_info *conversion,
 		void (*callback)(void *param, const struct audio_data *data),
 		void *param);
 EXPORT void audio_output_disconnect(audio_t video,

+ 1 - 1
libobs/media-io/video-io.c

@@ -255,7 +255,7 @@ static inline bool video_input_init(struct video_input *input,
 }
 
 bool video_output_connect(video_t video,
-		struct video_scale_info *conversion,
+		const struct video_scale_info *conversion,
 		void (*callback)(void *param, const struct video_data *frame),
 		void *param)
 {

+ 1 - 1
libobs/media-io/video-io.h

@@ -111,7 +111,7 @@ EXPORT int video_output_open(video_t *video, struct video_output_info *info);
 EXPORT void video_output_close(video_t video);
 
 EXPORT bool video_output_connect(video_t video,
-		struct video_scale_info *conversion,
+		const struct video_scale_info *conversion,
 		void (*callback)(void *param, const struct video_data *frame),
 		void *param);
 EXPORT void video_output_disconnect(video_t video,

+ 6 - 1
obs/window-basic-main.cpp

@@ -601,7 +601,12 @@ void OBSBasic::on_recordButton_clicked()
 	} else {
 		QString path = QFileDialog::getSaveFileName(this,
 				"Please enter a file name", QString(),
-				"Video Files (*.avi)");
+#ifdef _WIN32
+				"AVI Files (*.avi)"
+#else
+				"MP4 Files (*.mp4)"
+#endif
+				);
 
 		if (path.isNull() || path.isEmpty())
 			return;

+ 7 - 3
plugins/obs-ffmpeg/obs-ffmpeg-output.c

@@ -18,6 +18,7 @@
 #include <obs.h>
 #include <util/circlebuf.h>
 
+#include <libavutil/opt.h>
 #include <libavformat/avformat.h>
 #include <libswscale/swscale.h>
 
@@ -123,6 +124,9 @@ static bool open_video_codec(struct ffmpeg_data *data)
 	AVCodecContext *context = data->video->codec;
 	int ret;
 
+	if (data->vcodec->id == AV_CODEC_ID_H264)
+		av_opt_set(context->priv_data, "preset", "veryfast", 0);
+
 	ret = avcodec_open2(context, data->vcodec, NULL);
 	if (ret < 0) {
 		blog(LOG_ERROR, "Failed to open video codec: %s",
@@ -383,13 +387,13 @@ static const char *ffmpeg_output_getname(const char *locale)
 	return "FFmpeg file output";
 }
 
-static void ffmpeg_log_callback(void *param, int bla, const char *format,
+static void ffmpeg_log_callback(void *param, int level, const char *format,
 		va_list args)
 {
-	blogva(LOG_DEBUG, format, args);
+	if (level < AV_LOG_WARNING)
+		blogva(LOG_DEBUG, format, args);
 
 	UNUSED_PARAMETER(param);
-	UNUSED_PARAMETER(bla);
 }
 
 static void *ffmpeg_output_create(obs_data_t settings, obs_output_t output)