Browse Source

Use MP4s when not on windows

Also, make it use 'veryfast' preset.  Still testing this, might have to
revise this later.
jp9000 11 năm trước cách đây
mục cha
commit
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)