Plex Commercial Skipper Not working on MPEG2 TS or H264 MP4 - Error Unsupported Video Codec - Raspberry Pi 4

Server Version#: 1.25.2.5319
Player Version#: Plex Web
Tuner Make/Model: HDHomne
Guide/Lineup name: Guide
Using XMLTV?: OTA
Channel number/Name: All
OS Server: Raspberry Pi Buster 32 bit
Hardware: Pi4 4GB
Lifetime Plex Pass

Hi everyone, I wonder if anyone can help me.

I am unable to get the commercial skipping to work. I wonder if i am the only one? The error i get is:

Unsupported codec!
Could not open video codec

Normally I write my .ts files to an SMB share but for speed I copied one locally to produce the below as I had seen somewhere that SMB could be the issue (it isn’t I don’t think).

Somethings to consider -

  1. I did this on a fresh install of the OS, with just plex installed from the website.

  2. The Raspberry Pi 4 does not support hardware mpeg2 decoding, you can’t get a license it just says use software and it will be fine - and its true I can playback mpeg2 stuff fine in plex using android or the web service with transcoding all running fine — HOWEVER I wonder if this is why Comskip/Plex Commercial Skipper/FFMPEG is throwing a wobbly because its trying to use mpeg2_mmal ??? - Just a guess.

  3. It also doesn’t work on a h264 mp4 file either (same file but transcoded with ffmpeg before hand to aac & h264)… So maybe tha blows the mpeg2_mmal idea out the window?

Any thoughts, help or suggestions, would be greatly appreciated.

Log/Terminal output below.

Running Plex Commercial Skipper

    sudo ./Plex\ Commercial\ Skipper /home/pi/Downloads/output.ts --ini="/var/lib/plexmedias  erver/Library/Application Support/Plex Media Server/DVR/comskip.ini"
    Plex Commercial Skipper, made using ffmpeg
    Donator build
    The commandline used was:
            "./Plex Commercial Skipper"
            /home/pi/Downloads/output.ts
            "--ini=/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/DVR/comskip.ini"
    
    
    Setting ini file to /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/DVR/comskip.ini as per commandline
    Using /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/DVR/comskip.ini for initiation values.
    Mpeg:   /home/pi/Downloads/output.ts
    Exe     comskip.exe
    Logo:   /home/pi/Downloads/output.logo.txt
    Ini:    /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/DVR/comskip.ini
    
    Detection Methods to be used:
            1) Black Frame
            2) Logo - Give up after 2000 seconds
            3) Resolution Change
            4) Aspect Ratio
    
    
    ComSkip throttles back from -0001 to -0001.
    The time is now 1700 so it's full speed ahead!
    
    Settings
    --------
    [Main Settings]
    ;the sum of the values for which kind of frames comskip will consider as possible cutpoints: 1=uniform (black or any other co  lor) frame, 2=logo, 4=scene change, 8=resolution change, 16=closed captions, 32=aspect ration, 64=silence, 255=all.
    detect_method=43
    ;Set to 10 to show a lot of extra info, level 5 is also OK, set to 0 to disable
    verbose=10
    ;Frame not black if any of the pixels of the frame has a brightness greater than this (scale 0 to 255)
    max_brightness=60
    maxbright=1
    ;Frame not pure black if a small number of the pixels of the frame has a brightness greater than this. To decide if the frame   is truly black, comskip will also check average brightness (scale 0 to 255)
    test_brightness=40
    ;
    max_avg_brightness=25
    ;
    max_commercialbreak=600
    ;
    min_commercialbreak=25
    ;
    max_commercial_size=125
    ;
    min_commercial_size=4
    ;
    min_show_segment_length=250
    ;
    max_volume=500
    ;
    max_silence=100
    ;
    non_uniformity=500
    [Detailed Settings]
    min_silence=12
    remove_silent_segments=0
    noise_level=5
    brightness_jump=200
    fps=22
    validate_silence=1
    validate_uniform=1
    validate_scenechange=1
    global_threshold=1.05
    disable_heuristics=4
    cut_on_ac_change=1
    [CPU Load Reduction]
    thread_count=2
    hardware_decode=0
    play_nice_start=-1
    play_nice_end=-1
    play_nice_sleep=2
    [Input Correction]
    max_repair_size=200
    ms_audio_delay=5
    volume_slip=40
    lowres=0
    skip_b_frames=0
    [Aspect Ratio]
    ar_delta=0.08
    cut_on_ar_change=1
    [Global Removes]
    padding=0
    remove_before=0
    remove_after=0
    added_recording=14
    delete_show_after_last_commercial=0
    delete_show_before_first_commercial=0
    delete_show_before_or_after_current=0
    delete_block_after_commercial=0
    min_commercial_break_at_start_or_end=39
    always_keep_first_seconds=0
    always_keep_last_seconds=0
    [USA Specific]
    intelligent_brightness=0
    black_percentile=0.0076
    uniform_percentile=0.003
    score_percentile=0.71
    [Main Scoring]
    length_strict_modifier=3
    length_nonstrict_modifier=1.5
    combined_length_strict_modifier=2
    combined_length_nonstrict_modifier=1.25
    ar_wrong_modifier=2
    ac_wrong_modifier=1
    excessive_length_modifier=0.01
    dark_block_modifier=0.3
    min_schange_modifier=0.5
    max_schange_modifier=2
    logo_present_modifier=0.01
    punish_no_logo=1
    [Detailed Scoring]
    punish=0
    reward=0
    punish_threshold=1.3
    punish_modifier=2
    reward_modifier=0.5
    [Logo Finding]
    border=10
    give_up_logo_search=2000
    delay_logo_search=0
    logo_max_percentage_of_screen=0.12
    ticker_tape=0
    ticker_tape_percentage=0
    ignore_side=0
    ignore_left_side=0
    ignore_right_side=0
    subtitles=0
    logo_at_bottom=0
    logo_threshold=0.75
    logo_percentage_threshold=0.25
    logo_filter=0
    aggressive_logo_rejection=0
    edge_level_threshold=5
    edge_radius=2
    edge_weight=10
    edge_step=1
    num_logo_buffers=50
    use_existing_logo_file=1
    two_pass_logo=1
    [Logo Interpretation]
    connect_blocks_with_logo=1
    logo_percentile=0.92
    logo_fraction=0.4
    shrink_logo=5
    shrink_logo_tail=0
    before_logo=0
    after_logo=0
    where_logo=0
    min_black_frames_for_break=1
    [Closed Captioning]
    ccCheck=0
    cc_commercial_type_modifier=4
    cc_wrong_type_modifier=2
    cc_correct_type_modifier=0.75
    [Live TV]
    live_tv=0
    live_tv_retries=4
    require_div5=0
    div5_tolerance=-1
    incommercial_frames=1000
    [Output Control]
    output_default=1
    output_chapters=0
    output_plist_cutlist=0
    output_zoomplayer_cutlist=0
    output_zoomplayer_chapter=0
    output_scf=0
    output_vcf=0
    output_vdr=0
    output_projectx=0
    output_avisynth=0
    output_videoredo=0
    output_videoredo3=0
    videoredo_offset=2
    output_btv=0
    output_edl=1
    output_live=0
    edl_offset=0
    timeline_repair=1
    edl_skip_field=0
    output_edlp=0
    output_bsplayer=0
    output_edlx=0
    output_cuttermaran=0
    output_mpeg2schnitt=0
    output_womble=0
    output_mls=0
    output_mpgtx=0
    output_dvrmstb=0
    output_dvrcut=0
    output_ipodchap=0
    output_framearray=0
    output_debugwindow=0
    output_tuning=0
    output_training=0
    output_false=0
    output_aspect=0
    output_demux=0
    output_data=0
    output_srt=0
    output_smi=0
    output_timing=0
    output_incommercial=0
    output_ffmeta=0
    output_ffsplit=0
    delete_logo_file=0
    output_mkvtoolnix=0
    cutscene_frame=0
    cutscene_threshold=10
    windowtitle=""Comskip - %s""
    cuttermaran_options=""cut=\""true\"" unattended=\""true\"" muxResult=\""false\"" snapToCutPoints=\""true\"" closeApp=\""true\""""
    mpeg2schnitt_options=""mpeg2schnitt.exe /S /E /R25  /Z %2 %1""
    avisynth_options=""LoadPlugin(\""MPEG2Dec3.dll\"") \nMPEG2Source(\""%s\"")\n""
    dvrcut_options=""dvrcut \""%s.dvr-ms\"" \""%s_clean.dvr-ms\"" ""
    [Sage Workarounds]
    sage_framenumber_bug=0
    sage_minute_bug=0
    enable_mencoder_pts=0
    
    [mpegts @ 0xb5521800] start time for stream 2 is not set in estimate_timings_from_pts
    [mpegts @ 0xb5521800] start time for stream 4 is not set in estimate_timings_from_pts
    [mpegts @ 0xb5521800] PES packet size mismatch
    [mpegts @ 0xb5521800] Packet corrupt (stream = 1, dts = 2567819568).
    [mpegts @ 0xb5521800] stream 2 : no TS found at start of file, duration not set
    [mpegts @ 0xb5521800] Could not find codec parameters for stream 2 (Audio: mp3 ([3][0][0][0] / 0x0003), 0 channels): unspecif  ied frame size
    Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
    Input #0, mpegts, from '/home/pi/Downloads/output.ts':
      Duration: 01:01:37.54, start: 24834.272533, bitrate: 2127 kb/s
      Program 1
        Metadata:
          service_name    : Dave
          service_provider:
        Stream #0:0[0x191]: Video: mpeg2video ([2][0][0][0] / 0x0002), none(top first), 544x576 [SAR 32:17 DAR 16:9], 25 fps, 25   tbr, 90k tbn, 50 tbc
        Stream #0:1[0x192](eng): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, 128 kb/s
        Stream #0:2[0x194](eng): Audio: mp3 ([3][0][0][0] / 0x0003), 0 channels (visual impaired) (descriptions) (dependent)
        Stream #0:3[0x193](eng): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
      No Program
        Stream #0:4[0x12]: Data: epg
    Unsupported codec!
    Could not open video codec**
    /home/pi/Downloads/output.ts: could not open video codec

Echo of Variables Set - because I saw somewhere that might help - it didn’t help me at least?

    pi@plex:/lib/plexmediaserver $ echo $EAE_ROOT
    /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/EasyAudioEncoder-1625-linux-armv7neon/
    pi@plex:/lib/plexmediaserver $ echo $FFMPEG_EXTERNAL_LIBS
    /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/fb9eae3-4185-linux-armv7neon/

FFMPEG2 Codecs Grep for mpeg2 - Its the most up to date via apt… =/

 pi@plex:/lib/plexmediaserver $ ffmpeg -hide_banner -codecs | grep mpeg2                                                   DEV.L. mpeg2video           MPEG-2 video (decoders: mpeg2video mpegvideo mpeg2_mmal mpeg2_v4l2m2m ) (encoders: mpeg2video mpeg2_vaapi )

Running Plex Commercial Skipper on the *.mp4 file (removed the ini file output becaues its just a repeat of above for the *.ts)

    The commandline used was:
            "./Plex Commercial Skipper"
            /home/pi/Downloads/output.mp4
            "--ini=/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/DVR/comskip.ini"
    
    
    Setting ini file to /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/DVR/comskip.ini as per commandline
    Using /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/DVR/comskip.ini for initiation values.
    Mpeg:   /home/pi/Downloads/output.mp4
    Exe     comskip.exe
    Logo:   /home/pi/Downloads/output.logo.txt
    Ini:    /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/DVR/comskip.ini
    
    Detection Methods to be used:
            1) Black Frame
            2) Logo - Give up after 2000 seconds
            3) Resolution Change
            4) Aspect Ratio
    
    
    ComSkip throttles back from -0001 to -0001.
    The time is now 2033 so it's full speed ahead!
    
    Settings
    --------
    SETTINGS START
    CONTENT HERE REMOVED AS ITS THE SAME AS FOR THE *.TS
    SETTINGS END
    
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/pi/Downloads/output.mp4':
      Metadata:
        major_brand     : isom
        minor_version   : 512
        compatible_brands: isomiso2avc1mp41
        encoder         : Lavf58.76.100
      Duration: 01:01:37.52, start: 0.000000, bitrate: 1361 kb/s
        Stream #0:0(und): Video: h264 (avc1 / 0x31637661), none, 544x576, 1228 kb/s, SAR 32:17 DAR 16:9, 25 fps, 25 tbr, 12800 tbn, 12800 tbc (default)
        Metadata:
          handler_name    : VideoHandler
          vendor_id       : [0][0][0][0]
        Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 2 channels, 126 kb/s (default)
        Metadata:
          handler_name    : SoundHandler
          vendor_id       : [0][0][0][0]
    Could not open video codec

What user are you running Plex as?

Basically the tv directory needs read/write/execute permission.

So typically /mnt/mydvr/ folder is owned by plex:plex; and its all 755.
But to run the above i am running it as pi sudo, and they are not part of the plex group - maybe add them?

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.