You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	Merge commit '87acd33c092ab9e7d73686627e9105d99c1e4928'
* commit '87acd33c092ab9e7d73686627e9105d99c1e4928': aviocat: Add support for specifying the input duration Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		| @@ -26,13 +26,13 @@ | ||||
|  | ||||
| static int usage(const char *argv0, int ret) | ||||
| { | ||||
|     fprintf(stderr, "%s [-b bytespersec] input_url output_url\n", argv0); | ||||
|     fprintf(stderr, "%s [-b bytespersec] [-d duration] input_url output_url\n", argv0); | ||||
|     return ret; | ||||
| } | ||||
|  | ||||
| int main(int argc, char **argv) | ||||
| { | ||||
|     int bps = 0, ret, i; | ||||
|     int bps = 0, duration = 0, ret, i; | ||||
|     const char *input_url = NULL, *output_url = NULL; | ||||
|     int64_t stream_pos = 0; | ||||
|     int64_t start_time; | ||||
| @@ -46,6 +46,9 @@ int main(int argc, char **argv) | ||||
|         if (!strcmp(argv[i], "-b") && i + 1 < argc) { | ||||
|             bps = atoi(argv[i + 1]); | ||||
|             i++; | ||||
|         } else if (!strcmp(argv[i], "-d") && i + 1 < argc) { | ||||
|             duration = atoi(argv[i + 1]); | ||||
|             i++; | ||||
|         } else if (!input_url) { | ||||
|             input_url = argv[i]; | ||||
|         } else if (!output_url) { | ||||
| @@ -63,6 +66,15 @@ int main(int argc, char **argv) | ||||
|         fprintf(stderr, "Unable to open %s: %s\n", input_url, errbuf); | ||||
|         return 1; | ||||
|     } | ||||
|     if (duration && !bps) { | ||||
|         int64_t size = avio_size(input); | ||||
|         if (size < 0) { | ||||
|             av_strerror(ret, errbuf, sizeof(errbuf)); | ||||
|             fprintf(stderr, "Unable to get size of %s: %s\n", input_url, errbuf); | ||||
|             goto fail; | ||||
|         } | ||||
|         bps = size / duration; | ||||
|     } | ||||
|     ret = avio_open2(&output, output_url, AVIO_FLAG_WRITE, NULL, NULL); | ||||
|     if (ret) { | ||||
|         av_strerror(ret, errbuf, sizeof(errbuf)); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user