Skip to content

Remove Unneccessary Re-Encode If Video Is Already H264 - #234

Merged
evamaxfield merged 6 commits into
CouncilDataProject:mainfrom
whargrove:bug/rm-unnecessary-mp4-reencode
May 8, 2023
Merged

Remove Unneccessary Re-Encode If Video Is Already H264#234
evamaxfield merged 6 commits into
CouncilDataProject:mainfrom
whargrove:bug/rm-unnecessary-mp4-reencode

Conversation

@whargrove

Copy link
Copy Markdown
Contributor

Link to Relevant Issue

This pull request resolves #233

Description of Changes

Context: In clip_and_reformat_video if the video is already mp4/h264 encoded, the ffmpeg stream will re-encode the clipped portion (if clipping is present) or in the worst case re-encode the whole video again as h264.

This PR modifies the behavior of clip_and_reformat_video such that…

  • The video at video_filepath has a .mp4 extension, and
  • The desired output format is mp4, and
  • The video at video_filepath has a video stream with a codec of h264

… then ffmpeg stream will use ffmpeg's StreamCopy codec to copy the video/audio streams to the output file instead of decoding and encoding the input and output streams respectively. According to ffmpeg: "it is very fast and there is no quality loss."

This change should result in a significant decrease in Event Gather pipeline runtime for data sources that already provide mp4/h264 encoded videos.

whargrove added 6 commits May 7, 2023 21:34
- if video_filepath ext is mp4 and ffmpeg
  probe finds video stream with h264 codec
  add codec:copy to StreamCopy the video
  instead of re-encoding as h264.
@codecov

codecov Bot commented May 8, 2023

Copy link
Copy Markdown

Codecov Report

Merging #234 (54603d9) into main (6c1c1ff) will increase coverage by 0.27%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #234      +/-   ##
==========================================
+ Coverage   71.67%   71.95%   +0.27%     
==========================================
  Files          50       50              
  Lines        3329     3362      +33     
==========================================
+ Hits         2386     2419      +33     
  Misses        943      943              
Impacted Files Coverage Δ
cdp_backend/tests/utils/test_file_utils.py 100.00% <100.00%> (ø)
cdp_backend/utils/file_utils.py 89.38% <100.00%> (+1.08%) ⬆️

@evamaxfield

Copy link
Copy Markdown
Member

Seems good to me! Will merge and cut a new rc release ASAP

@evamaxfield
evamaxfield merged commit 0982830 into CouncilDataProject:main May 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

MP4 Videos Unnecessarily Encoded During Trim

2 participants