[PATCH] Option to mux video as MKV instead of MP4

M2 M.2 at btinternet.com
Sun Jan 1 14:17:46 EST 2012


Hi all and happy new year,

is there any benefit muxing MP4 into MKV?


dinkypumpkin wrote:
> On 09/05/2011 08:10, Shevek wrote:
>>> -----Original Message-----
>>> From: get_iplayer-bounces at lists.infradead.org [mailto:get_iplayer-
>>> bounces at lists.infradead.org] On Behalf Of dinkypumpkin
>>> Sent: 08 May 2011 23:33
>>> To: get_iplayer at lists.infradead.org
>>> Subject: Re: [PATCH] Option to mux video as MKV instead of MP4
>>>
>>> I would suggest the slightly simpler alternative below.  It keeps
>>> all the
>> file
>>> extension munging in one place.  Also, some logic in
>>> Programme::generate_filenames is predicated on the file extension
>>> already
>>> being set.
>>>
>>
>> I did look at a solution like this but was unsure what the effect
>> would be -
>> i.e. if downloading a radio file with --mkv set in prefs-add, would that
>> override the .aac with .mkv?
>>
>> I don't know nearly enough about the whole get_iplayer script :-/
>>
>
> No, .aac would still be OK, though not with the code I sent.  I
> neglected to restrict assignment of .mkv extension to video downloads
> only.  Sorry about that.  Correction is below.
>
> diff --git a/get_iplayer b/get_iplayer
> index b173205..1c8755c 100755
> --- a/get_iplayer
> +++ b/get_iplayer
> @@ -139,7 +139,7 @@ my $opt_format = {
>      test        => [ 1, "test|t!", 'Recording', '--test, -t', "Test
> only - no recording (will show programme type)"],
>      thumb        => [ 1, "thumb|thumbnail!", 'Recording', '--thumb',
> "Download Thumbnail image if available"],
>      thumbonly    => [ 1,
> "thumbonly|thumbnailonly|thumbnail-only|thumb-only!", 'Recording',
> '--thumbnail-only', "Only Download Thumbnail image if available, not
> the programme"],
> -    aactomp3 => [ 1, "aactomp3", 'Recording', '--aactomp3',
> "Transcode aac audio to mp3 with ffmpeg"],
> +    aactomp3    => [ 1, "aactomp3", 'Recording', '--aactomp3',
> "Transcode aac audio to mp3 with ffmpeg"],
>
>      # Search
>      before        => [ 1, "before=n", 'Search', '--before', "Limit
> search to programmes added to the cache before N hours ago"],
> @@ -168,6 +168,7 @@ my $opt_format = {
>      html        => [ 1, "html=s", 'Output', '--html <file>', "Create
> basic HTML index of matching programmes in specified file"],
>      isodate        => [ 1, "isodate!",  'Output', '--isodate', "Use
> ISO8601 dates (YYYY-MM-DD) in filenames"],
>      metadata    => [ 1, "metadata=s", 'Output', '--metadata <type>',
> "Create metadata info file after recording. Valid types are: xbmc,
> xbmc_movie, freevo, generic"],
> +    mkv            => [ 1, "mkv", 'Output', '--mkv', "Output video in
> MKV container instead of MP4. Currently no tagging supported from
> get_iplayer for MKV output"],
>      mythtv        => [ 1, "mythtv=s", 'Output', '--mythtv <file>',
> "Create Mythtv streams XML of matching programmes in specified file"],
>      nowrite        => [ 1, "no-write|nowrite|n!", 'Output',
> '--nowrite, -n', "No writing of file to disk (use with -x to prevent a
> copy being stored on disk)"],
>      output        => [ 2, "output|o=s", 'Output', '--output, -o
> <dir>', "Recording output directory"],
> @@ -6921,6 +6922,8 @@ sub download {
>      $prog->{ext} = 'flv' if $opt->{raw} && $mode =~ /^flash/;
>      # Override flashaac ext based on aactomp3
>      $prog->{ext} = 'mp3' if ! $opt->{raw} && $opt->{aactomp3} &&
> $mode =~ /^flashaac/;
> +    # Override ext based on mkv option
> +    $prog->{ext} = 'mkv' if ! $opt->{raw} && $opt->{mkv} &&
> $prog->{type} eq 'tv';
>
>      # Determine the correct filenames for this recording
>      if ( $prog->generate_filenames( $ua, $prog->file_prefix_format()
> ) ) {
> @@ -8171,6 +8174,15 @@ sub get {
>                  '-y', $prog->{filepart},
>              );
>          }
> +    # Convert video flv to mkv if required
> +    } elsif ( $opt->{mkv} ) {
> +        @cmd = (
> +            $bin->{ffmpeg},
> +            '-i', $file_tmp,
> +            '-vcodec', 'copy',
> +            '-acodec', 'copy',
> +            '-y', $prog->{filepart},
> +        );
>      # Convert video flv to mp4/avi if required
>      } else {
>          @cmd = (
>
>
> _______________________________________________
> get_iplayer mailing list
> get_iplayer at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/get_iplayer
>




More information about the get_iplayer mailing list