Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged

Conversation

whargrove
Copy link
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.

- 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
Copy link

codecov bot commented May 8, 2023

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
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