DiVOC Push to Talk

Special Post-Production Sauce due to Separate Translation

Go to tracker, pick ticket

Click the link for the according talk from https://streaming.media.ccc.de/divoc_ptt/relive, click the “download” link

Make sure you have the translator audio for the respective time. See https://wiki.c3lingo.org/translation-recordings

Use ffmpeg to cut the mp4 to the required length without re-encoding: ffmpeg -i muxed.mp4 -ss <start> -to <end> -c copy id-<hd>-orig.mp4, where <start> and <end> are timestamps and <id> is the talk's id in the tracker. Check the final length (ffmpeg output or run ffprobe). Note that this method can only split at keyfames, so the final result might be a bit off. If that's not tolerable, you will have to do a reencode (instead of -c copy, use -c:a copy -c:v libx264 -bufsize:0 8192k -minrate:0 100k -maxrate:0 2000k -crf:0 18 -profile:0 main).

Open the clip in kdenlive or shotcut. open the translation right along with it in a separate audio track. and align the translation so it fits with the original (delay it by a few secs so it feels natural, live translations are never instant). Fit the audio exactly with the video in terms of length, and mute the video's audio. Next, click Render/Export and make sure to only export the audio, as aac/m4a. name the file <id>-hd-tl.m4a. (This can also be done with pure ffmpeg if you feel confident enough)

Merge translation to the original video: ffmpeg -i <hd>-orig.mp4 -i <id>-hd-tl.m4a -c copy -map 0:v -map 0:a -map 1:a -shortest <id>-hd.mp4

Verify with ffprobe that there now are one video and two audio tracks on the new file.

Copy the new file to releasing.c3voc.de:/video/tmp/divoc_ptt/repair

Set the Record.SourceReplacement property to <id>-hd.mp4

Set the recording ticket to state “Recorded”.

Check the final result of the master hd ticket. Set the correct languages (which is first, which is second), and check that intro/outro are there, and that levelling and ducking (for the translation) has been applied.

Do not apply any leveling or ducking by yourself. The encoding process will take care of that and apply leveling for both languages as well as ducking for the translation.