Я ищу способ разделить или вырезать видеофайл mp4, закодированный h264, без повторного кодирования. До сих пор для редактирования файла с кодировкой mp4 h264 я использовал Microsoft Expression Encoder 4 Pro. Проблема в том, что мне всегда нужно перекодировать файл, и это требует времени, ненужного времени, если я хочу только разрезать или разбить видеофайл. Любая помощь или указание в правильном направлении ценится.Редактирование видеофайла mp4 h264 без повторного кодирования
ответ
libmp4v2 дает вам примитивы, чтобы создать что-то для этого. Im не осведомлен о свободном от шельфа решении, которое делает именно это, хотя было бы относительно легко реализовать, если вы сокращаете границы I-кадра.
, спасибо, но я ищу что-то связанное C#. – Kevkong
@ Kevkong Я не верю, что он существует. Скорее всего, вам нужно будет p/invoke сделать что-то, чтобы сделать многое, если какие-либо манипуляции с низкими уровнями данных из C#. – Yaur
Если вы хотите сделать жестокие произвольные сокращения в файле MP4 и просто изменить заголовок, я действительно надеюсь, что ему не понадобится супер оптимизированный низкоуровневый код C. Что бы я делал, это проверить спецификации формата, а затем провести некоторое тестирование, чтобы увидеть, как декодер переваривает разбитые последовательности. На новых платформах, таких как WP и WinRT, меньше. –
Я не знаю, как разделить видео без повторного кодирования (перекодирования), но на Windows 8 транскодирования видео было построено в:
Чтобы обрезать файл, вызовите метод Асинхронный PrepareFileTranscodeAsync, а затем вызовите метод TranscodeAsync для объекта PrepareTranscodeResult.
Например:
async void TrimFile(StorageFile srcFile, StorageFile destFile)
{
MediaEncodingProfile profile =
MediaEncodingProfile.CreateMp4(VideoEncodingQuality.HD720p);
MediaTranscoder transcoder = new MediaTranscoder();
// Set the start of the trim.
transcoder.TrimStartTime = new TimeSpan(0, 0, 1);
// Set the end of the trim.
transcoder.TrimStopTime = new TimeSpan(0, 0, 9);
PrepareTranscodeResult prepareOp = await
transcoder.PrepareFileTranscodeAsync(srcFile, destFile, profile);
if (prepareOp.CanTranscode)
{
var transcodeOp = prepareOp.TranscodeAsync();
transcodeOp.Progress +=
new AsyncActionProgressHandler<double>(TranscodeProgress);
transcodeOp.Completed +=
new AsyncActionWithProgressCompletedHandler<double>(TranscodeComplete);
}
else
{
switch (prepareOp.FailureReason)
{
case TranscodeFailureReason.CodecNotFound:
OutputText("Codec not found.");
break;
case TranscodeFailureReason.InvalidProfile:
OutputText("Invalid profile.");
break;
default:
OutputText("Unknown failure.");
break;
}
}
}
How to trim a video file (Windows Store apps using C#/VB/C++ and XAML)
Также можно Splicer (использует DirectShow.Net) для более старых Windows.
Надеюсь, это поможет кому-то.
Эй, спасибо за подсказку. Проект смещен, но как только мне придется снова решить эту проблему, я рассмотрю ваше решение/пример. – Kevkong
- 1. ffplay - изменение скорости воспроизведения без повторного кодирования
- 2. Trim mp4 файлы без его кодирования
- 3. Ремонт поврежденного видеофайла MP4
- 4. Извлечение h264 части видеофайла (demuxing)
- 5. python/video - удаление кадров без повторного кодирования
- 6. Как записать бинарный поток непосредственно в контейнер MPEG-4 AVC (mp4) без повторного кодирования в C#?
- 7. форсирование VLC для воспроизведения видеофайла h264
- 8. Редактирование mp4 путем манипуляции образцами
- 9. h264 mp4 index to front command line
- 10. Максимальный размер заголовка MP4 H264
- 11. h264 кодирования видеопотока FFmpeg C++
- 12. AVKit trim h264 - frame exactcy
- 13. Как использовать gstreamer для перекодирования и изменения размера от mp4 (h264/aac) до mp4 (h264/mp3)?
- 14. Функция повторного кодирования Toupper
- 15. Блоки повторного кодирования vb.net
- 16. Как я могу просмотреть «код» видеофайла .mp4?
- 17. Возможно ли распознать объект видеофайла (mp4, mov, ...)
- 18. Интеграция видеофайла (.mp4) в docx/doc
- 19. Как получить сегменты штриховки видеофайла .mp4
- 20. обтекание h264 потоком в mp4 с gstreamer
- 21. mp4 h264 как полезная нагрузка PES
- 22. Контент файла h264 в MP4 в C++
- 23. Как обернуть H264 в контейнер mp4?
- 24. android - mux raw h264 в контейнере mp4
- 25. Открытый поток CAC с кодеком H264 (mp4)
- 26. FFServer потоковой передачи H.264 от Logitech C920 без повторного кодирования
- 27. Загрузка видеофайла без загрузки ввода
- 28. Сжатие видеофайла для веб-сайта?
- 29. Редактирование метатегов файлов mp4/m4a
- 30. MP4 H264 VBR, Как получить битрейт для каждой секунды видео?
зависит от способа кодирования видео. если вы не разделились на границе ключевого кадра, обычно требуется повторное кодирование, по крайней мере, часть его требуется. –
раскол на границе ключевого кадра будет для меня прекрасным, но я не нашел ни одной библиотеки, которую я мог бы использовать для этой «легкой» задачи в C# – Kevkong