将一些 mp4 从计算机移动到 U 盘后,我发现我的 mp4 已损坏。我猜U盘是有罪的。
但是我想恢复这些 MP4 文件,我尝试了 ffmpeg 但没有成功。
当我在 Linux 下工作时,我尝试过:
ffmpeg -i corrupted_video_file.mp4 -c copy fixed_video_file.mp4
Run Code Online (Sandbox Code Playgroud)
是否有其他方法来修复损坏的 mp4 文件或任何其他工具?
谢谢
此用例是一项服务,手动将一系列未压缩的 .wav 媒体片段编码为.m4s片段,以便通过MPEG-DASH广播,使用ffmpeg将 .wav 压缩为 .aac,并使用sannies/mp4parser将 aac 音频组装为 .m4s 片段。 m4s媒体片段。
我创建了这个公共 GitHub 项目来完整重现该问题。
例如,下面是自定义CustomFragmentMp4Builder.java类。
至关重要的是,我们能够使用序列号(索引)来指定这个单个 .m4s 片段,我们将为每个媒体片段手动递增该序列号。
目标是构建一个包含框类型、和 的.m4s片段。作为参考,我使用mp4parser来检查通过 生成的.m4s片段。该规范可在此处以 .yaml 文件形式提供SegmentTypeBoxSegmentIndexBoxMovieFragmentBoxffmpeg -f hls
我的实现创建 MP4 时没有错误。但是,当单元测试尝试读取 ChunkMp4Builder 刚刚写入临时文件夹的文件时:
java.lang.RuntimeException: A cast to int has gone wrong. Please contact the mp4parser discussion group (3724673092)
at org.mp4parser.tools.CastUtils.l2i(CastUtils.java:30)
at org.mp4parser.support.AbstractBox.parse(AbstractBox.java:97)
at org.mp4parser.AbstractBoxParser.parseBox(AbstractBoxParser.java:116)
at org.mp4parser.BasicContainer.initContainer(BasicContainer.java:107)
at …Run Code Online (Sandbox Code Playgroud) 下面看起来很多,但主要只是输出。
我正在尝试使用 multer (通过 iPhone 上的 Alamofire 发送包含视频(.mov 格式)的请求)作为输入的缓冲区,然后我希望它作为缓冲区输出,然后将结果发送到S3。我想我已经很接近了,但我不认为 Fluent-ffmpeg 可以传入缓冲区。这是使用此构建包部署在 Heroku 上的: https: //github.com/jonathanong/heroku-buildpack-ffmpeg-latest。 …… 我如何正确地传递它?
const multer = require('multer')
const upload = multer({ limits: { fieldSize: 100_000_000 } })
app.post('/create', upload.single('video'), async function (request, response, next) {
let data = request.body
console.log(data) // prints [Object: null prototype] { param1: '' }
let bufferStream = new stream.PassThrough();
console.log(request.file.buffer) // prints '<Buffer 00 00 00 14 66 74 79 70 71 74 20 20 00 00 00 00 71 …Run Code Online (Sandbox Code Playgroud) 我想用来MediaView播放 Shinobi 媒体服务器生成的视频流和视频文件,但MediaView似乎无法处理 Shinobi 生成的任何流或文件。
我正在使用 Java 18 和 JavaFX 19(我也尝试过旧版本)。
我这里有一个由 Shinobi 生成的示例文件。
在VLC中运行良好,这表明该文件具有以下属性:
编解码器: H264 - MPEG-4 AVC(第 10 部分)(avc1)
视频分辨率: 1280x720
解码格式: Planar 4:2:2 YUV 全尺寸
色度位置:左侧
我已向MediaPlayer、MediaView和Media对象添加了错误处理程序,但当我尝试播放该文件时没有错误。
有人知道为什么玩家不喜欢上面的文件吗?
有人成功播放 Shinobi 的文件吗(它在幕后使用 FFMPEG。)?
它确实播放其他文件,例如:
https://coderslegacy.com/wp-content/uploads/2020/07/Pygame_Platformer-1.mp4";
Run Code Online (Sandbox Code Playgroud)
我希望视频能够正常播放,或者让播放器告诉我为什么无法播放视频。
这是我的代码:
package com.example.videotester;
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.scene.media.Media;
import javafx.scene.media.MediaErrorEvent;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.Stage;
import java.io.File;
public class HelloApplication extends …Run Code Online (Sandbox Code Playgroud) 最近在 DELL x86 64 位笔记本电脑上安装了 Ubuntu 22.04,当我出于某种原因导入 mp4 文件时,内置视频播放器无法播放 mp4 文件。要么告诉我找不到编解码器,要么无法访问文件??这是令人费解的。现在我可以在其他应用程序(例如 Chrome)中播放 mp4 文件,但是即使使用 VLC 播放器,mp4 文件也无法正确渲染(要么是冻结的图片,要么是扭曲渲染的黑白 - 就像它被压扁一样)。
我偶然发现的一个解决方案是安装 ubuntu-restricted-extras,这似乎没有帮助?
有什么建议可以更新编解码器或修复已安装的视频播放器 - 或者继续使用 Chrome 查看 MP4 文件吗?
我尝试在安装 Ubuntu 22.04 后检查是否有任何更新 - 它确实安装了一些更新 我尝试安装 ubuntu-restricted-extras - 似乎使情况变得更糟 - 然后我“删除”了restricted-extras - 似乎没有什么区别 我尝试过使用各种其他应用程序打开 mp4 文件,结果参差不齐,有些在 VLC 播放器上可以正常播放,有些则不能,有些在 Firefox 上可以正常播放,有些则不能,大多数似乎在 Chrome 上都可以正常播放。
关于如何使用GTK +播放视频的任何建议?
问候,
Lancy Norbert Fernandes
是否有任何命令行工具将h264/mp4索引移动到开头,以便flash可以通过网络更快地开始播放文件?我知道QTIndexSwapper工具,但它不是命令行.
或者是否有一个ffmpeg命令在编码期间将索引放在前面?
谢谢.
我需要解码mp4文件并在ios应用程序中使用OpenGL绘制它.我需要从mp4文件中提取和解码h264帧,我听说使用CoreMedia可以做什么.有人知道怎么做吗?CoreMedia使用的任何例子?
我必须设计一个检测mp4文件的模块.如果将任何随机文件作为输入,它必须告诉它是否是一个mp4文件.在哪里可以找到mp4文件的标题规范?尝试谷歌搜索除了签名之外找不到任何东西.关于模块的C编程的其他任何提示?
mp4 ×10
h.264 ×3
ffmpeg ×2
video ×2
c ×1
codec ×1
core-media ×1
file ×1
flash ×1
fmp4 ×1
gtk ×1
indexing ×1
ios ×1
javafx ×1
javascript ×1
linux ×1
media-player ×1
mp4parser ×1
mpeg-dash ×1
node.js ×1
rtsp ×1
shinobi ×1
ubuntu ×1
ubuntu-22.04 ×1
video-player ×1