我试图通过有选择地删除 H.264 比特流数据来模拟视频中的数据丢失。数据只是一个原始的 H.264 文件,本质上是一个二进制文件。我的计划是每 100 个字节删除 2 个字节,以达到 2% 的损失。最后,我将测试一些运动矢量错误隐藏算法的有效性。
如果能够在 Unix 环境中执行此操作,那就太好了。到目前为止,我已经对 xxd 命令进行了一些研究,并且能够从二进制文件中保存十六进制转储的特定部分。例如,要跳过二进制比特流的前 50 个字节并保存随后的 100 个字节,我将执行以下操作:
xxd -s 50 -l 100 inputBinaryFile | xxd -r > outputBinaryFile
我希望将类似的东西合并到一个 bash 脚本中,该脚本将自动删除每 100 个字节的最后 2 个字节。此外,我希望脚本在第二次出现序列00 00 01 06 05
(第一个 P 帧 SEI 开始代码)之前跳过所有内容。
我不知道在基于 C 的语言中这会容易多少,但我的编程技能非常有限,如果可能的话,我宁愿现在只处理 Linux 编程。
谢谢。