8

Hope this explanation is what you're looking for: When you transcode to an encoding such as H.264 (MPEG-4 part 10) you necessarily also resample the video, that's part of H.264 compression technique. Nontheless, I doubt if this is the reason you experience a timing gap since the resampling doesn't necessarily influence the clock rate of the media. So, I ...


8

BTW, this question might be better on stackoverflow, or maybe unix.stackexchange, or maybe serverfault. This site is I think less focused on questions that don't involve decisions based on creative merit or at least perceptual video / audio quality. However, I'm all about the tech details, so I'll answer. FFmpeg uses multi-threading by default, so you ...


7

The CRF scales for x264 and x265 do not correspond. x265 CRF 28 is supposed to be equivalent to x264 CRF 23. But x265 is not yet as mature in its development as x264, so take that CRF equivalence with a pinch of salt. That said, you can try to establish your own calibration between the current versions of the encoding libraries in your ffmpeg by running ...


7

A direct option to resume encoding is not available. And as for manually restarting encoding, that's also not possible. Two reasons: 1) when transcoding to a typical container like MP4, the index is written after encoding is completed. There will be no such index in a partial file if the process died unexpectedly, and so the existing file cannot be parsed. ...


6

It's an issue with new video drivers. Everything is fine with video driver 361.28 and lower. I already sent this issue to NVIDIA Support with Reference Number 161118-000164 UPDATE: This issue has been resolved from the 375.39 driver. It allows keep interlacing on Pascal 10x video cards.


5

This isn't a phenomenon, this is compression. It is simply how it works. Compression works by taking an input, runs it through some algorithms and then gets an output that matches up either exactly (lossless) or approximately (lossy) with the original input. It is not stored like normal video data as a set of pixels, but rather some form of data that ...


5

To understand this you need to understand how codecs actually work. A plain uncompressed video frame e.g. a single picture is pretty large. I'm talking about a bitmap, not a lossless encoded video, no encoding at all, just plain pixel information. Here simple example of a Full HD frame for some perspective: We have a resolution of 1920x1080 that equals to ...


4

libtheora is single threaded. There is a multithreaded experimental build, but is not maintained. I would suggest running it in parallel with the other encodes. Also if possible use libfdk-aac over libfaac. Much higher audio fidelity at the same bitrate.


4

A common method is split-and-stitch where the file is cut into pieces and sent to multiple servers for transcode. That way you can transcode a file of any length in a fixed amount of time. Telestreams Episode Engine can do this, but I'm sure Google uses something custom coded.


4

Although @stib's advice is sound, I disagree with "to get an appreciable size reduction you would have to throw away a lot of quality". Cameras have to compress on-the-fly, so they use constrained baseline mode, which is to say, they skip most of the tricks that H.264 codec uses to efficiently compress videos. If space isn't a pressing concern, keep them as-...


4

I've worked through a similar project over the last 6 months, and performed more tests than I can keep track of now. So this is a little fresh for me. With your questions: 4K camera -> capture card -> Linux PC (compression) -> RTSP This will work well Are blackmagic ursa mini 4K and decklink card able to do the first 2 stages respectively? Yes ...


4

I've solved the issue by rebuilding the timestamps from scratch with -use_wallclock_as_timestamps 1 and -fflags +genpts. /usr/bin/ffmpeg -use_wallclock_as_timestamps 1 -i "rtsp://${source}" -fflags +genpts -vcodec copy -acodec aac -f flv "rtmp://${dest}" This is only a partial solution, or rather workaround, as it's still unclear to me what causes this ...


4

FFmpeg, by default, autorotates videos if a rotation tag is detected. The output video will be oriented upright and have no rotation tag. During processing, this step happens before any filtering is done. So, in this case, you can simply run ffmpeg -i 20180115_111730.mp4 -r 30 -acodec copy 20180115_111730_2.mp4 Alternatively, to perform manual rotation, ...


3

Rather than using constant bitrate, have a go using constant quality (AKA constant rate factor, or crf). So instead of -b:v 2000 use -crf 23 (adjust the number to change the quality, higher is smaller / lower quality and lower is larger / better quality). Constant quality usually gives you more bang for your bits, as it skimps on bitrate where it's not ...


3

I struggled with a similar issue on Ubuntu 12.04.3 LTS. I fixed the problem using the static ffmpeg build which is available from http://johnvansickle.com/ffmpeg/


3

You can use tsMuxer to add the audio stream from one .ts file into the .ts file containing the video or vice versa. This is called muxing and doesn't affect the quality of the audio or video in any way.


3

A lot of these answers seem somewhat misleading unfortunately. Forget about getting a capture card. Practically every one has AGC. AGC is very similar to macrovision, except it's superimposed onto any video source. It's impossible to disable unless you use Linux and know your way around hacking drivers. Some cards on Windows have third party tools to ...


3

There are two main features in NVIDIA NVENC encoding: Video memory if you need to transcode many streams. NVENC SIP - than better this SIP than better encoding performance is. It depends on GPU. You can find the best explanation related GPU and NVENC SIP generation on Wikipedia website. Maxwell Gen 2 is the best at the moment(for 2016). According to the ...


3

If the only difference is bitrate, then any container which accepts variable bitrate streams, will fulfill your requirement e.g. MP4, MKV..etc Step 1 is to encode your segments, ideally using the same encoder, to different bitrates with all other parameters being the same e.g. via ffmpeg, ffmpeg -ss 0 -t 5 -i input.mp4 -b:v 1000k seg1.mp4 ffmpeg -ss 5 -t ...


3

All that matters is if the MP4 looks good to you. Of course, you may be able to compress more. There is no set bitrate to use. More complex or rapidly changing visuals require greater bitrate. Most converters use x264 to generate the converted video stream, and x264 offers a CRF mode which adjusts the bitrate based on the visual content complexity. If your ...


3

The issue is that you are using -crf with -b:v. ffmpeg is a well built program, so it's just ignoring -b:v and using -crf. If you want to have a specific bitrate, remove the crf command. CRF is "constant rate factor", which means a quality variable is specified then a variable bitrate is calculated based on the content. It's my favorite for h.264 because ...


2

Generally, I would expect that just about any solution will work pretty well now. The capabilities of even cheap modern hardware so far outpace the capability of laserdisc that you aren't likely to lose much. Certainly a professional quality capture system similar to the ones Matrox sells would do a superb job, but I'd hazard that even a cheap $30 USB to ...


2

Like you suggested yourself you might want to use FFmpeg instead. It can utilize x264 as well which is the library that Handbrake is using for encoding. While x264 itself can do some very limited color correction via color space conversion (which can be used in the Handbrake CLI) I wouldn't recommend it if you want advanced manipulation of the video look. ...


2

It takes a lot of bits to accurately, or nearly-accurately reproduce the input pixels, regardless of what they contain. The only exception is low-complexity stuff like a screen capture or animation, where big areas are EXACTLY the same colour, and/or at bit-for-bit identical from frame to frame. The difference between your intuition and real life comes from ...


2

I don't know about the specific format of mjpeg that you are working with, but it is certainly possible to handle interlaced video with mjpeg. I believe the most common way is to do a jpeg per field, so you get half the vertical resolution and alternate between the odd and even fields.


2

Under the video tab, you'll see two options. Video Codec, which is how the video is encoded (h.264 is the standard for .mp4 files), and Quality, which controls the level of video compression that occurs. It's the Quality slider that you're mostly worried about if you want to keep it an mp4. Drag that slider to the right to improve the quality (this will ...


2

If you just want to embed a cover you might consider keeping the result as mp3, for example: ffmpeg -i original.mp3 -i cover.png -map 0:0 -map 1:0 -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (Front)" -id3v2_version 3 -write_id3v1 1 result.mp3 If you are creating mp4's, e.g. for YouTube, then I suggest to split the process to two steps - ...


2

You will need to work within the title safe areas when burning to DVD as depending on what the final player will be, there might be overscan which will/can crop anything out that is not within this field. as for the pixel things, I'm not to sure.


2

Use ffmpeg -i INPUT -vcodec libx264 -g 2 -acodec copy -y out.mpg As per the x264 docs, scenecut=0 disables scenecut evaluation.


2

There are several methods/algorithms to compare a transcoded file against its original. This is a good article which I believe covers what you're asking. It touches on algorithms such as Peak Signal-to-Noise (PSNR) ratio and Structural Similarity Index (SSIM) used to perform objective analysis -- without having to watch the actual video. http://www....


Only top voted, non community-wiki answers of a minimum length are eligible